[Lazarus] RE : Issuing debug commands from the ide.
Ludo Brands
ludo.brands at free.fr
Fri Jun 1 15:47:08 CEST 2012
> I was wondering, when I saw the log that you posted on
> mantis.... I saw
> breakpoints in the debugger code ....
>
I told you in the mantis update;)
> Have you tried to compile the IDE with DBG_WITH_DEBUGGER_DEBUG
> defined?
>
> It does exactly the above. It has been there a very long time.
>
No didn't know about that define. I didn't encounter anything like that and
I actualy did search for somehting like that before starting to do any
coding. Searching for the define in the files I opened in the IDE only
brings up the conditional declaration of function GetDebugger: TDebugger;.
So it seems I have been working in a completely different area of the code.
Where would I enter teh debugger commands when using
DBG_WITH_DEBUGGER_DEBUG?
> It has also been decided, that this feature will only be
> available via
> this define.
> Reason: This is mainly for people who wish to
> debug/experiment with the
> debugger. And it also requires knowledge of both: gdb and how the IDE
> deals with gdb.
>
> If in this command window you execute statements, that run the exe
> ("-exec-continue" / "c") then the IDE looses sync, and your debug
> session is gone. Even if you change the stackframe or thread, you can
> get wrong results....
> Fixing all this will only make the ide code more complex and
> harder to
> maintain.
>
I understand. It is very easy to shoot in your foot using the debugger
directly.
> > If anybody is interested in this, I'll submit it to mantis.
> >
> Not sure of the use of that?
> What data do you want to display?
>
I have had too many cases where I had to use the gdb command line to debug
code. Reason why I wanted to do something about it.
Examples:
- wrote a while ago a fpc program that had to do some stack walking. Hence
the x/20x $sp example.
- searching in and displaying a particular memory area that is in pascal
just a pointer. When tracing in assembler there are many cases where I would
like to now the contents of the memory area pointed to by a register.
- tried to get to the VMT of a COM interface yesterday
- info fun with partial function names
- set a breakpoint at non fpc code (dll exported symbols for example)
- etc.
Non of this is to debug the debugger.
Ludo
More information about the Lazarus
mailing list