Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2019-10

Feedback about GDB on Windows

6 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Martin Frb

To all who
- use Lazarus on Windows (any version of Lazarus 2.0 or 2.1)
- use or have tried GDB 8.2 (for 64bit users also GDB 7.7 or 8.1) from https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/Alternative%20GDB/ https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/Alternative%20GDB/

What is your experience with GDB 8.2 (7.7/8.1)?
Compared to the default GDB (32bit: 7.7.1 / 64bit: 7.3.50) Any improvements you noticed?
Any degradations you noticed?

- Your Lazarus and FPC version/revision.
- Your OS (with version and 32 or 64 bit)
- Your IDE is 32 or 64 bit
- Your FPC is 32 or 64 bit
- Your target app is 32 or 64 bit (and indicate if it was cross compiled, by an FPC with different bitness)

Thank you

Reply by email

Martin Frb
to Martin Frb

Forgot to mention:

Which Dwarf version do you use?

32bit users, please ensure you switch to Dwarf.
Testing with Stabs (fpc -g or -gs  / the default for 32 bit) is pointless.

Martin Frb wrote 10 lines
- Your Lazarus and FPC version/revision. - Your OS (with version and 32 or 64 bit) - Your IDE is 32 or 64 bit - Your FPC is 32 or 64 bit - Your target app is 32 or 64 bit (and indicate if it was cross compiled, by an FPC with different bitness) Thank you

Reply by email

Luca Olivetti
to Martin Frb

El 13/10/19 a les 18:01, Martin Frb via lazarus ha escrit:

Testing with Stabs (fpc -g or -gs  / the default for 32 bit) is pointless.

It's the only format that shows the content of a record, e.g.

var f:textfile

stabs (-g) -> f = record TEXt { HANDLE = 450900519, MODE = 55217 , ...... dwarf with sets (-gw -godwarfsets) -> f = record TEXT {} dwarf2 (-gw2) -> f = record TEXT {}
dwarf3 (-gw3) -> no symbol F in current context

This is with the default gdb, with 8.2 it only changes the output of gw3 (<unknown type in d:\streamio\Project1.dbg, CU 0x630, DIE 0x72b>)

Bye

Luca Olivetti Wetron Automation Technology http://www.wetron.es/ Tel. +34 93 5883004 (Ext.3010) Fax +34 93 5883007

Reply by email

Martin Frb
to Luca Olivetti
Luca Olivetti wrote 10 lines
> Testing with Stabs (fpc -g or -gs  / the default for 32 bit) is > pointless. It's the only format that shows the content of a record, e.g. var f:textfile stabs (-g) -> f = record TEXt { HANDLE = 450900519, MODE = 55217 , ...... dwarf with sets (-gw -godwarfsets) -> f = record TEXT {} dwarf2 (-gw2) -> f = record TEXT {}

Interesting.
I have a feeling that is intention (by the compiler). But you may want to discuss this on the fpc list.

Reply by email

Luca Olivetti
to Martin Frb

El 25/10/19 a les 3:24, Martin Frb via lazarus ha escrit:

Show quoted text 15 lines
On 21/10/2019 12:18, Luca Olivetti via lazarus wrote: >> Testing with Stabs (fpc -g or -gs  / the default for 32 bit) is >> pointless. > It's the only format that shows the content of a record, e.g. > > var f:textfile > > stabs (-g) -> f = record TEXt { HANDLE = 450900519, MODE = 55217 , ...... > dwarf with sets (-gw -godwarfsets) -> f = record TEXT {} > dwarf2 (-gw2) -> f = record TEXT {} > Interesting. I have a feeling that is intention (by the compiler). But you may want to discuss this on the fpc list.

I just wanted to know why you said using stabs is pointless. A while ago I tried dwarf but then I switched back to stabs. I don't think I did it only because of the records but my memory is failing me :-(

Bye

Luca Olivetti Wetron Automation Technology http://www.wetron.es/ Tel. +34 93 5883004 (Ext.3010) Fax +34 93 5883007

Reply by email

Martin Frb
to Luca Olivetti
Luca Olivetti wrote
I just wanted to know why you said using stabs is pointless. A while ago I tried dwarf but then I switched back to stabs. I don't think I did it only because of the records but my memory is failing me :-(

Actually it seems to have (mostly) been based on incorrect memory.
- Just looked through my testcase, and there are actually less special cases for stabs, than I remembered.  (And most of them are not important)
- There is (while properties do not work): "property Foo read FFoo" direct field access is encoded as field, but afaik only in dwarf.

What does really not work, according to a quick test (gdb 8.3 / 32 bit win) are sets. They show an integer value.

Otherwise it seems most things are worked around
https://wiki.lazarus.freepascal.org/GDB_Debugger_Tips#Stabs_.28only_GDB.29

I do however remember the opposite experience that you have. I know that every now and then I was unable to inspect some data, because I accidentally had my settings on stabs. But I do not recall what data that was. Quite possible the need to see the content of a set (in human readable form).

Note that "dwarf"  here means "dwarf 2 with sets". Dwarf without sets => no reason to use / dwarf3 with gdb => not stable.

Reply by email