From: Rocky B. <roc...@gm...> - 2007-04-20 01:56:15
|
I spent a little time looking at this after a very long day at work. Alas I'm too tired to investigate further so I'll just report what I know at present. In short, as best as I can tell I think this is a bug in bash. Details are below, but if things were working before and with the latest round of patches things got broken, it would indicate that either bash introduced a bug or there is something invalid that bashdb is doing that causes bash to behave badly. Although I tried this on cygwin, but it would be interesting to try to compile on a different platform to see if similar failures occur. Some details follow. At the line mentioned, line 944 of dbg-cmd.inc, I turned on set -x tracing. Basically I added this: export PS4='(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]}\n' set -x and a matching set +x later on. The attached patch might be of help here. To run just the failing program one can go into the test directory and run "./brkpt2.tests" Here is what I see near the failure: ... + ### another x command... + x j (((((../dbg-cmds.inc:946): _Dbg_do_x _Dbg_is_var j (((((../dbg-fns.inc:126): _Dbg_is_var declare -p j (((((../dbg-fns.inc:127): _Dbg_is_var [[ 0 != 0 ]] (((((../dbg-fns.inc:130): _Dbg_is_var echo 1 ((((../dbg-cmds.inc:946): _Dbg_do_x (( declare -i j="1" 1 )) ../dbg-cmds.inc: line 946: declare -i j="1" 1 : syntax error in expression (error token is "j="1" 1 ") What's wrong here is that line 946 is not "(( declare -i j="1" .... but if (( `_Dbg_is_var $_Dbg_expr` )) ; then So what seems to be happening is that the wrong text is getting substituted back inside the backtick. What you should have seen was (( 1 )) because there was that "echo 1". Interestingly whenever _Dbg_is_var decides to run "echo 0" instead of "echo 1", that does get substituted back correctly. I'll attach a log of my run. Finally, I don't know if this is related, but I seem to be getting "out of resource" errors after running the tests. 5 [main] sh 64760 fork: child -1 - CreateProcessA failed, errno 11 ../dbg-pre.inc: fork: Resource temporarily unavailable 5 [main] sh 64676 fork: child -1 - CreateProcessA failed, errno 11 With Windows ,one never knows what's going on. On 4/19/07, Eric Blake <eb...@by...> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > I was trying to upgrade the cygwin installation of bashdb to the latest > release, and encountered 2 test failures atop bash-3.2.15. I'm not > familiar enough with the bashdb sources to know where to look for the > cause of these two failures, but since they all mention dbg-cmds.inc line > 944, I wonder if there is a bug there. Any ideas? > > checking brkpt1... > checking brkpt2... > - --- /home/eblake/bashdb-3.1_0.08-1/build/test/brkpt2.check 2007-04-19 > 06:42:53.453125000 -0600 > +++ /home/eblake/bashdb-3.1_0.08-1/src/bashdb-3.1-0.08/test/brkpt2.right > 2007-01-19 20:43:30.000000000 -0700 > @@ -195,19 +195,13 @@ > 11: local -i j=i+1 > + ### another x command... > + x j > - -../dbg-cmds.inc: line 944: ((: declare -i j="1" > - -1 : syntax error in expression (error token is "j="1" > - -1 ") > - -1 > +declare -i j="1" > + ### another x command (+5 than value above) ... > + x j+5 > 6 > + ### x command of string y > + x y > - -../dbg-cmds.inc: line 944: ((: declare -- y="b" > - -1 : syntax error in expression (error token is "y="b" > - -1 ") > - -y > +declare -- y="b" > + ### x of a function ... > + x fn2 > fn2 () > FAIL: run-brkpt > > - --- /home/eblake/bashdb-3.1_0.08-1/build/test/command.check 2007-04-19 > 06:44:10.843750000 -0600 > +++ /home/eblake/bashdb-3.1_0.08-1/src/bashdb-3.1-0.08/test/command.right > 2006-12-03 15:30:52.000000000 -0700 > @@ -20,10 +20,7 @@ > + continue > Breakpoint 1 hit (1 times). > + x x > - -../dbg-cmds.inc: line 944: ((: declare -- x="22" > - -1 : syntax error in expression (error token is "x="22" > - -1 ") > - -22 > +declare -- x="22" > (dbg-test1.sh:23): > 23: y=23 > + # > FAIL: run-command > > - -- > Don't work too hard, make some time for fun as well! > > Eric Blake eb...@by... > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.5 (Cygwin) > Comment: Public key at home.comcast.net/~ericblake/eblake.gpg > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFGJ2ow84KuGfSFAYARAok2AJ9jZn/f4/EDZHXQBOaQyIhgSqLS2wCgqV4O > Vw3+oI0N6WeoE9jQps34V4Y= > =Fl9N > -----END PGP SIGNATURE----- > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Bashdb-devel mailing list > Bas...@li... > https://lists.sourceforge.net/lists/listinfo/bashdb-devel > |