Debugging with GDB Cannot search D Program Symbols

I successfully built and installed the GDB branch of Ian Buclaw (ibuclaw) github on my Ubuntu 13.10 x86_64 with its default GCC 4.8.1 compiler.

I had to delete the ld file from the bin subdirectory; otherwise, DMD complains about the subject on the side in the communication phase.

When I then compile my test program and run it through GDB, I have problems.

I can do break main , start and GDB stops at the beginning of main , but when I do next , I get the next unwanted output

  Single stepping until exit from function main, which has no line number information. 0x00007ffff760ede5 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6 

Isn't it supposed that ibuclaw GDB is working here?

My test program was compiled as

 dmd -debug -g -gs -wi t_array.d -oft_array 

without any warnings or errors. I also tried pretending to be C

 dmd -debug -g -gc -gs -wi t_array.d -oft_array 

with the same result.

Further, when I do b , followed by a tab, most of the characters in the completion list are not demarcated.

My test program looks like

 import std.stdio, std.algorithm; void main(string args[]) { int[] x; writeln(x.sizeof); if (x) { writeln("Here!"); } else { writeln("There!"); } int xx[2]; auto xc = xx; xc[0] = 1; writeln(xx); writeln(xc); int[2] xx_; auto hit = x.find(1); if (hit) { writeln("Hit: ", hit); } else { writeln("No hit"); } int[2] z; // arrays are zero initialized writeln(z); assert([].ptr == null); assert("ab"[$..$] == []); auto p = "ab"[$..$].ptr; writeln(p); assert(p != null); } 
+6
source share
1 answer

Works fine for me with monodevelop and the GDB debugger (and not with debuger gdb for D), you should use the start command instead of break main. More details in your dlangs forum thread: http://forum.dlang.org/thread/ avbpulzptddlekkczwse@forum.dlang.org

+3
source

All Articles