Debugging D code with GDB

Iain Buclaw ibuclaw at gdcproject.org
Sun Nov 28 21:59:51 UTC 2021


On Saturday, 27 November 2021 at 14:17:11 UTC, Eduard Staniloiu 
wrote:
> Hello,
>
> I'm trying to use `gdb` to debug D binaries, but I'm having 
> trouble accessing the methods of a struct or class. It seems 
> that `gdb` doesn't see them.
>
> Given the following simple example
> ```
> // test.d
> struct S
> {
>     int x;
>
>     void myPrint() { writefln("x is %s\n", x); }
> }
>
> void main(string[] args)
> {
>     S s;
> }
> ```
> Compile the source file with debug simbols (`dmd -g test.d 
> -of=test`) and open the binary with gdb (`gdb test`) and run 
> the following
>
> ```
>> break _Dmain # break at D entry point
>> run
>> ptype s
> type = struct test.S {
>     int x;
> }
>> print s.myPrint()
> Structure has no component named myPrint.
> ```
>
> As you can see, when I try to access the `myPrint()` method I 
> get the error
> "Structure has no component named myPrint."
>

DMD doesn't emit this information. GDB can't work miracles when 
the compiler isn't pulling its own weight.



More information about the Digitalmars-d-learn mailing list