<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 62: hook.sh syntax error at line 285</title><link href="https://sourceforge.net/p/bashdb/bugs/62/" rel="alternate"/><link href="https://sourceforge.net/p/bashdb/bugs/62/feed.atom" rel="self"/><id>https://sourceforge.net/p/bashdb/bugs/62/</id><updated>2019-10-07T23:35:14.291000Z</updated><subtitle>Recent changes to 62: hook.sh syntax error at line 285</subtitle><entry><title>#62 hook.sh syntax error at line 285</title><link href="https://sourceforge.net/p/bashdb/bugs/62/?limit=25#fc24" rel="alternate"/><published>2019-10-07T23:35:14.291000Z</published><updated>2019-10-07T23:35:14.291000Z</updated><author><name>Rocky Bernstein</name><uri>https://sourceforge.net/u/rockyb/</uri></author><id>https://sourceforge.net774167f8f95c4c7041819b2a8106ff3f3452cac7</id><summary type="html">&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;</summary></entry><entry><title>#62 hook.sh syntax error at line 285</title><link href="https://sourceforge.net/p/bashdb/bugs/62/?limit=25#4dd2" rel="alternate"/><published>2019-10-03T16:21:31.435000Z</published><updated>2019-10-03T16:21:31.435000Z</updated><author><name>Rocky Bernstein</name><uri>https://sourceforge.net/u/rockyb/</uri></author><id>https://sourceforge.neteacbfed604dcf91d75689d9ed754f88784e51bfd</id><summary type="html">&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;</summary></entry><entry><title>hook.sh syntax error at line 285</title><link href="https://sourceforge.net/p/bashdb/bugs/62/" rel="alternate"/><published>2019-10-03T11:56:56.635000Z</published><updated>2019-10-03T11:56:56.635000Z</updated><author><name>Wybo</name><uri>https://sourceforge.net/u/wybodekker/</uri></author><id>https://sourceforge.net659c442d0552a0340ee7d550450d753e7a172a31</id><summary type="html">&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;</summary></entry></feed>