This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Infinite loop in sigstep.exp
- From: Michael Chastain <mec dot gnu at mindspring dot com>
- To: cagney at gnu dot org, gdb at sources dot redhat dot com
- Date: Mon, 30 Aug 2004 08:07:08 -0400
- Subject: Infinite loop in sigstep.exp
I'm getting an infinite loop in the new sigstep.exp
with an old gdb, gdb drow_intercu-20040221-branch.
gdb.log looks like this:
Breakpoint 2, handler (sig=26) at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/testsuite/gdb.base/sigstep.c:31
31 done = 1;
1: x/i $pc 0x8048473 <handler+3>: movl $0x1,0x8049738
(gdb) stepi
32 } /* handler */
1: x/i $pc 0x804847d <handler+13>: mov %ebp,%esp
(gdb) stepi
0x0804847f 32 } /* handler */
1: x/i $pc 0x804847f <handler+15>: pop %ebp
(gdb) stepi
0x08048480 in handler (sig=1) at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/testsuite/gdb.base/sigstep.c:32
32 } /* handler */
1: x/i $pc 0x8048480 <handler+16>: ret
(gdb) stepi
Breakpoint 2, handler (sig=26) at /berman/fsf/_today_/source/gdb/HEAD/src/gdb/testsuite/gdb.base/sigstep.c:31
31 done = 1;
1: x/i $pc 0x8048473 <handler+3>: movl $0x1,0x8049738
Somehow, stepi off the "ret" instruction just goes back to the
beginning of the function instead of stepping into "<signal handler
called">.
This blows up my test bed, so I have to fix it.
My first plan is to add some counters to prevent infinite loops
with "exp_continue". I'm open to other ideas.
Michael