[Lazarus] invisible break points??
David Emerson
dle3ab at angelbase.com
Fri Jan 7 23:59:26 CET 2011
I'm attaching some debug output. One of the logs was an execution with no
breakpoints (view > debug info > breakpoints list is empty; also the lpi file
has no breakpoints) and in the other execution I created one breakpoint.
In the execution with no breakpoints, everything went smoothly.
In the execution with the one breakpoint, the program stopped at debug log line
186,
*stopped,reason="breakpoint-hit",bkptno="38", [...]
(gdb)
However, when I say the "program stopped", lazarus did not behave as if it had
encountered a breakpoint. The lazarus main and source windows did not raise; in
the source editor, the line with the breakpoint is marked with a red highlight
and checkmark, not with a blue highlight and arrow. Pressing F9 (while focused
on the source window) has no effect whatsoever. The call stack window is empty,
and the gdb debug output window does not show any stack info, either.
I clicked on the breakpoint line in the source editor, and pressed F5 to remove
the breakpoint. The gdb window shows:
<-break-delete 38>
^done
(gdb)
However the program is still not moving.
So at this point, I put the same breakpoint back in. The gdb window shows:
<-break-insert -f ab_fpgui_types_unit.inc:230>
^done,bkpt={number="39",type="breakpoint",disp="keep",enabled="y",addr="0x08073656",func="T_COMMAND_WINDOW__DO_MY_THING_BUTTON_PRESS",file="ab_fpgui_types_unit.inc",fullname="/ab/Pascal/ab_fpgui_types_unit.inc",line="230",times="0"}
(gdb)
<-break-enable 39>
^done
(gdb)
<-exec-continue>
^running
(gdb)
*stopped,reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt",thread-id="1",frame={addr="0x08073656",func="T_COMMAND_WINDOW__DO_MY_THING_BUTTON_PRESS",args=[{name="SENDER",value="0xb76998e0"},
{name="this",value="0xb7861f10"}],file="ab_fpgui_types_unit.inc",fullname="/ab/Pascal/ab_fpgui_types_unit.inc",line="230"}
(gdb)
<-stack-info-depth>
[...] and all the rest.
Martin wrote:
> You mean your app forks a new process (or executes another app as new
> process)?
No, it's just a procedure call.
> version of gdb?
GNU gdb 6.8-debian
> Also start Lazarus from console, and watch for any output of the IDE. It
> may report something there....
Yes, it does give this interesting output when the program myteriously stops:
ERROR: Got NO stop params at all, but was running
> 32 or 64 bit? or maybe a mix? 64 bit system, but running 32bit apps?
32 everything
> An other issue is that if you open 2 independent copies of the same file
> (via different sym links) you may be able to irritate the IDE, and the
> breakpoint may be in the one copy, the execution mark in the other...
This *is* extremely annoying, actually -- the IDE often opens up multiple copies
of the same (symlinked) source all on its own. Not at all sure why it does
this, but it's very irritating. However, in this case, I made sure no copies
were open; and even if there were, F9 should resume execution.
I guess I'll report this on Mantis, now that there's presumably enough info to
do so.
Any idea how to "clean" my project, so it doesn't do this? Perhaps I just need
to create a new project from scratch? Or delete the project.compiled file, or
something? I'll play around.
Cheers,
David
-------------- next part --------------
A non-text attachment was scrubbed...
Name: debug-logs-bp-prob.tgz
Type: application/x-tgz
Size: 10505 bytes
Desc: not available
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20110107/9a797c67/attachment-0003.bin>
More information about the Lazarus
mailing list