[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-dev] target unexpectedly stops on a SIGINT while setting breakpoint on running target
|
I'm encountering an intermittent problem setting a breakpoint while the
target is running on mingw/gdb 7.0. The target ends up becoming
unexpectedly suspended because of a SIGINT.
The target program is in the middle of a Win32 Sleep() call when I try to
set the breakpoint. The next thing I expect to happen is that the
breakpoint is hit. Instead, the target stops in an unexpected location.
Interestingly enough, gdb seems to warn the debugger that this is going
to happen (see bold/red trace line below). Any gdb experts out there know
why this is happening?
Command 103 is when I hit resume in the debugger. The target program
moves on to the Sleep() call.
Command 104 is when I tell the debugger to set a breakpoint (while the
target is running). The debugger has, of course, silently interrupted GDB
in order to do so
Command 105 is when the debugger silently resumes the target after having
set the breakpoint
Note that the foreboding response to 103 only happens after 104.
John
103-exec-continue
103^running
*running,thread-id="all"
(gdb)
=thread-created,id="2",group-id="3828"
~"[New Thread 3828.0x12ac]\n"
[New Thread 3828.0x12ac]
~"[Switching to Thread 3828.0x12ac]\n"
[Switching to Thread 3828.0x12ac]
*stopped,frame={addr="0x7c810856",func="KERNEL32!CreateThread",args=[],from="C:\\WINDOWS\\system32\\kernel32.dll"},thread-id="2",stopped-threads="all"
104-break-insert c_simple_mingw.c:5
103^error,msg="Quit (expect signal SIGINT
when the program is resumed)"
=thread-selected,id="2"
(gdb)
104^done,bkpt={number="3",type="breakpoint",disp="keep",enabled="y",addr="0x00401310",func="main",file="../src/c_simple_mingw.c",fullname="C:/eclipse_3.6M5/runtime-New_configuration/c_simple_mingw/.settings/../src/c_simple_mingw.c",line="5",times="0",original-location="c_simple_mingw.c:5"}
(gdb)
105-exec-continue
105^running
*running,thread-id="all"
(gdb)
*stopped,reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt",frame={addr="0x7c874fed",func="KERNEL32!GetConsoleCharType",args=[],from="C:\\WINDOWS\\system32\\kernel32.dll"},thread-id="2",stopped-threads="all"
(gdb)