Forum > Debugger

Help me collect debug-issues

(1/4) > >>

Hi all,

I still want to improve the debug-experience on Free Pascal applications Because let's face it, debugging in Lazarus is still 'less then optimal'. Despite the huge efforts of several developers.

But when one of those developers spend his time on debugging libraries with fpdebug, while the majority of the users do not need that functionality, this is a waste of time. (Well, I needed it myself)

So, to improve the DAB-debug adapter based on fpDebug I need a list of things that ruin the debug-experience. I hoped we can make such a list in this thread. Please don't discuss the issues here, if you want to do that, start another thread. Also do not reply on issues that you also encountered. Maybe we can add a poll later.

And I do not want to have a biased start, so I do not start myself.

Thanks for the help.

[Edit fixed broken web link]

At the Pascal source level, there is nothing I would go as far as saying "ruins the experience".  There are some rough edges here and there but, usually quite manageable.

That said, at the assembly level - which is where I do a lot of debugging - neither FpDebug nor GDB (as used in Lazarus) can be considered even adequate.  Basically, at the assembly level, they are unusable (except for getting run time short assembly code listings.)

I realize I'm not the typical user.  My "wish list" isn't likely to be of much use to programmers who debug at the Pascal source level but, since you asked, I thought I'd mention it. :)


--- Quote from: Joost on January 04, 2022, 11:43:02 pm ---So, to improve the DAB-debug adapter based on fpDebug I need a list of things that ruin the debug-experience. I hoped we can make such a list in this thread.

--- End quote ---
I'm a bit confused about where your project fits into the Lazarus scheme.  It appears that you implement a DAB server, i.e. something that feeds information to a debugger frontend/IDE like VSC and Lazarus. The DAB server is based on fpdebug, and Lazarus can also use fpdebug via LazDebuggerFp (or whatever the name of the fpdebug based Lazarus debugger is %)).  So in what ways would an improved DAB server imrpove the Lazarus debug experience?

Regardless of whether the limitations are on the Lazarus frontend or backend side, some feature requests/wishes:

* Better annotation of disassembly listing
* Stack viewer, with a bonus if it annotates view with an ABI interpretation
* Complex data viewer/explorer for arrays, records & classes.
* Better or configurable display of call stack parameters

Thanks, 440bx. Debugging a the assembly-level added to the list. (Although indeed not a common case, I would say)


--- Quote from: ccrause on January 12, 2022, 02:48:24 pm ---I'm a bit confused

--- End quote ---

I can imagine. First of all I shouldn't have send the original message from the 'Joost' account, the browser was logged in and I assumed it was the correct account.

The FPDServer (The DAB adapter) uses FpDebug and improvements on the FPDServer also involve FpDebug. Such improvements could also be ported to the internal-fpdebug debugger. I've choosen to work on the FPDServer because the code-base is smaller and easier to adapt. And it helps more Freepascal developers as it also works on other IDE's.

To make it possible for Lazarus-users to use FPDServer, I've added a DAB-frontend in Lazarus. (You can now debug Python applications in Lazarus)

The biggest visual difference between the DAB-debugger in Lazarus and other debuggers, is that the DAB-debugger shows variables, classes, arrays and such in a treeview-manner. See here for an example. The idea is to bring this functionality also to the other debug-backends, but that's a complex task.

About your list, what is the difference between the second and fourth option?


[0] Message Index

[#] Next page

Go to full version