[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