Are there any plans to expand FpDebug to support remote debugging (gdb remote serial protocol) of AVR? I guess the key additions would be a remote communication layer and an AVR disassembler.
Or translate LazDebuggerFpGDBMI to use gdbserver.My preference is to move away from gdb since it needs a patch (which has been around since 2016) to work properly with the separate memory spaces of avr.
That should be easy, since it just needs to insert the commands to gdb that set the remote.... (and maybe async gdb commands)
My preference is to move away from gdb since it needs a patch (which has been around since 2016) to work properly with the separate memory spaces of avr.Moved to https://forum.lazarus.freepascal.org/index.php/topic,47073.msg336382.html#msg336382
One small problem: when program finished there's no dialog "Execution stopped" like it popup when stop program with gdb as debugger.I just tested (on windows though) and the dialog appears.
I put together a feature/status list (according to memory):
https://wiki.lazarus.freepascal.org/Debugger_Status
Does not work in 32bit Lazarus debugging 64bit App.
Will FpDebug support external symbols (-Xg)?
We use -Xg in our app to link statically some GCC .o libraries.
With my current gdb issues with console applications I finally decided to give fpdebug a try. And I must say I am extraordinarily surprised. It's almost like working with Delphi finally! Fly-over hints of properties? No problem (well, mostly...). 10 to 20 seconds waiting before the FileDialog opens in the debugger? No problem. I think i can do 90% of my debug work with it.Properties (or the working subset of them) are actually not fpdebug specific.
@Martin: There is also a package fpdebug. It is not installed on my systems. Is it needed?Its used by LazDebuggerFp. So its compiled in.
FpDebugger doesn't work on Windows 10 when Project Options use an option "Use external debug symbols file (-Xg)".
With my current gdb issues with console applications I finally decided to give fpdebug a try. And I must say I am extraordinarily surprised. It's almost like working with Delphi finally! Fly-over hints of properties? No problem (well, mostly...). 10 to 20 seconds waiting before the FileDialog opens in the debugger? No problem. I think i can do 90% of my debug work with it.
For those who like myself are confused by the many debugger packages available in the standard installation here are the steps that I took to make it work
- Go to "Package" > "Install/Uninstall packages". Make sure that LazDebuggerFp is installed (if not, install the package).
- Go to "Tools" > "Options" > "Debugger". In the gray combobox "Debugger type and paths" which usually displays "GNU debugger (gdb)", select "FpDebug standard Dwarf debugger (beta)".
- After compilation of a project you will be prompted to select which kind of dwarf debugging informations is too be used. The selection is written to the project file. (I hope permanent selection here is not a problem when the project is passed to others, like in my forum posts)
@Martin: There is also a package fpdebug. It is not installed on my systems. Is it needed?
Is there a way to avoid changing the project settings when FPDebug is used, or to write the changed settings to the session file rather than to the lpi file?
In trunk, a 64bit IDE can debug a 32bit target.I thought so. Unfortunately my employer supplied Windows machine has a policy that prevents copying anything containing "vlc", so getting FPC or Lazarus trunk sources on it is a major pain. The only way I managed is to use an installer, which then skip the vlc packages on error.
And indeed it gives no error, so that part should be reported on mantis.Issue 38167 (https://bugs.freepascal.org/view.php?id=38167)
and every subsequent user of this demo will have to use dwarf debug info.
Is there a way to avoid changing the project settings when FPDebug is used, or to write the changed settings to the session file rather than to the lpi file?
Afaik, debug info is stored in session.
I opened one of the examples to check, and
Project options > Session
showed
"Save in lpi file"
IMHO, that should be set to "save in lps" for all examples.
That would then need to be committed once to svn.
I prefer lps in project dir, but if you want clean svn checkouts, then it needs to be in config dir (which afaik can lead to name clashes)