On 06/06/2011 15:27, Marc Weustink wrote:
Martin wrote:
Having just reported http://bugs.freepascal.org/view.php?id=19466
I started wondering (to late, should have done before the report) and
googled.

It appears that gdb has a "feature" to skip function prologue and
epilogue. However I could not find any info on what info gdb uses to
know what is the prologue.
So it is possible that something tells gdb that the code on which no
stop occurs is the proluge.

:)
Thats why we in lazarus query the address of a procedure first and set the breakpoint on that address. This way you always get a break on the start of the procedure (otherwise it depends on debug symbols beeing present or not (for exported functions))

Ah well, but that is for the internal breakpoints...

user breakpoints aren't always by start-of-proc, they are by unit + line number. => and in this case gdb does it's own interpretation.....

Also it would need investigation. Since a line can have more thna one statement, and since in conditional code, the first statement is not necessarily executed, I do not know how smart gdb is on this. But if you translated that to address first, it would certainly limit to the 1st statement on the line (or to which ever statement picked...)


Anyway, so does that mean the stopping (or not stopping) at begin, is a feature (if we call it that) in gdb, and fpc does nothing wrong?
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to