|
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
>
|