[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