<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 62: hook.sh syntax error at line 285</title><link>https://sourceforge.net/p/bashdb/bugs/62/</link><description>Recent changes to 62: hook.sh syntax error at line 285</description><atom:link href="https://sourceforge.net/p/bashdb/bugs/62/feed.rss" rel="self"/><language>en</language><lastBuildDate>Mon, 07 Oct 2019 23:35:14 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/bashdb/bugs/62/feed.rss" rel="self" type="application/rss+xml"/><item><title>#62 hook.sh syntax error at line 285</title><link>https://sourceforge.net/p/bashdb/bugs/62/?limit=25#fc24</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;On Mon, Oct 7, 2019 at 3:04 PM tien ho van &lt;a href="mailto:hvtien.ch@gmail.com"&gt;hvtien.ch@gmail.com&lt;/a&gt; wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hi Rocky,&lt;/p&gt;
&lt;p&gt;I just saw your patch this morning, applied it and tested again. It resolved my problems. I think your idea to put it to read only is great, really very good, because is more reliable and we don't need to executed this.&lt;br/&gt;
Therefore I think we need also to delete the following line too, which I put actually in comment.&lt;/p&gt;
&lt;p&gt;_Dbg_hook_enter_debugger() {&lt;br/&gt;
    _Dbg_stop_reason="$1"&lt;br/&gt;
    [[ 'noprint' != $2 ]] &amp;amp;&amp;amp; _Dbg_print_location_and_command&lt;br/&gt;
    _Dbg_process_commands&lt;br/&gt;
    _Dbg_set_to_return_from_debugger 1 # Persist the user-space value of BASH_REMATCH in user space #    eval $_Dbg_last_regmatch_command&lt;br/&gt;
     return $_Dbg_continue_rc&lt;br/&gt;
}&lt;/p&gt;
&lt;p&gt;I already tested it.&lt;/p&gt;
&lt;p&gt;I am not totally sure what you mean, but when 'eval $_Dbg_last_regmatch_command" is commented out, then BASH_REMATCH might not be not set properly on debugger exit. &lt;br/&gt;
As a result a program like this: &lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;regex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;aa(b{2,3}[xyz])cc&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;word&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;aab&lt;/span&gt; &lt;span class="nv"&gt;aabbxcc&lt;/span&gt; &lt;span class="nv"&gt;aabbcc&lt;/span&gt;&lt;span class="c1"&gt;; do&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; [[ $&lt;span class="nv"&gt;word&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; $&lt;span class="nv"&gt;regex&lt;/span&gt; ]]&lt;span class="c1"&gt;; then&lt;/span&gt;
        &lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$word matches&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
        &lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="nv"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;${#&lt;span class="nv"&gt;BASH_REMATCH&lt;/span&gt;[&lt;span class="o"&gt;*&lt;/span&gt;]}
        &lt;span class="k"&gt;while&lt;/span&gt; [[ $&lt;span class="nv"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;lt&lt;/span&gt; $&lt;span class="nv"&gt;n&lt;/span&gt; ]]
        &lt;span class="k"&gt;do&lt;/span&gt;
            &lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;  capture[$i]: ${BASH_REMATCH[$i]}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
            &lt;span class="nv"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
        &lt;span class="nv"&gt;done&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$word does not match&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="nv"&gt;fi&lt;/span&gt;
    &lt;span class="nv"&gt;shift&lt;/span&gt;
&lt;span class="nv"&gt;done&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Will not work properly when it is stepped through. &lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;If I can help you, just let me know.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;What would be a big help would be to write a test case that incorporates both bash scripts that might fail: the one that you started with and the one I just gave. &lt;/p&gt;
&lt;p&gt;Thanks for all the help. &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rocky Bernstein</dc:creator><pubDate>Mon, 07 Oct 2019 23:35:14 -0000</pubDate><guid>https://sourceforge.net774167f8f95c4c7041819b2a8106ff3f3452cac7</guid></item><item><title>#62 hook.sh syntax error at line 285</title><link>https://sourceforge.net/p/bashdb/bugs/62/?limit=25#4dd2</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Commit #57b18c2 might fix things. Please double check though.&lt;/p&gt;
&lt;p&gt;This is about all the time in the near future I'll be able to spend on this.  In case you want to improve or work up a regression test  based on your test, here is what was going on.&lt;/p&gt;
&lt;p&gt;We need to save and  BASH_REMATCH going into the debugger and restore it leaving so that if the debugged program uses that variable it has the value it set rather than something the debugger might have set. &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rocky Bernstein</dc:creator><pubDate>Thu, 03 Oct 2019 16:21:31 -0000</pubDate><guid>https://sourceforge.neteacbfed604dcf91d75689d9ed754f88784e51bfd</guid></item><item><title>hook.sh syntax error at line 285</title><link>https://sourceforge.net/p/bashdb/bugs/62/</link><description>&lt;div class="markdown_content"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;# &lt;span class="nv"&gt;bash&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nv"&gt;version&lt;/span&gt;
&lt;span class="nv"&gt;GNU&lt;/span&gt; &lt;span class="nv"&gt;bash&lt;/span&gt;, &lt;span class="nv"&gt;version&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;.&lt;span class="mi"&gt;0&lt;/span&gt;.&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;release&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;x86_64&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;pc&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;linux&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;gnu&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

# &lt;span class="nv"&gt;bashdb&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nv"&gt;version&lt;/span&gt;
&lt;span class="nv"&gt;bashdb&lt;/span&gt;, &lt;span class="nv"&gt;release&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;.&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;.&lt;span class="mi"&gt;1&lt;/span&gt;.&lt;span class="mi"&gt;0&lt;/span&gt;

# &lt;span class="nv"&gt;cat&lt;/span&gt; &lt;span class="nv"&gt;bashdb&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;test&lt;/span&gt;
#&lt;span class="o"&gt;!/&lt;/span&gt;&lt;span class="nv"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;bash&lt;/span&gt;
&lt;span class="nv"&gt;line&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;= asd&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; [[ &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;$line&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt;\ &lt;span class="ss"&gt;(&lt;/span&gt;.&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; ]]&lt;span class="c1"&gt;; then &lt;/span&gt;
   &lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;yes&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
   &lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;no&lt;/span&gt;
&lt;span class="nv"&gt;fi&lt;/span&gt;
&lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;bye&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;When I bashdb on this file and type next trhee times I get this error mesaage:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;share&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bashdb&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;hook&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;285&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;conditional&lt;/span&gt; &lt;span class="nb"&gt;binary&lt;/span&gt; &lt;span class="k"&gt;operator&lt;/span&gt; &lt;span class="n"&gt;expected&lt;/span&gt;
&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;share&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bashdb&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;hook&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;285&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;syntax&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;near&lt;/span&gt; &lt;span class="o"&gt;`&lt;/span&gt;&lt;span class="n"&gt;asd&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;span class="s1"&gt;/usr/share/bashdb/lib/hook.sh: eval: line 285: `[[ = asd =~ ^=\ (.*) ]]'&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;although everything else runs as expected.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wybo</dc:creator><pubDate>Thu, 03 Oct 2019 11:56:56 -0000</pubDate><guid>https://sourceforge.net659c442d0552a0340ee7d550450d753e7a172a31</guid></item></channel></rss>