digitalmars.D - Linux Graphical Debugger
- teqDruid (6/6) Sep 24 2004 Has anyone found a graphical debugger for Linux that'll display D source
- Ant (10/18) Sep 24 2004 it's not the front-end.
- teqDruid (4/28) Sep 24 2004 I've tried DDD, insight, and kgdb... gdb kinda works... does the debug
- Ant (63/74) Sep 24 2004 no, from http://www.digitalmars.com/d/dcompiler.html
- John Reimer (3/29) Sep 24 2004 Wasn't he asking about GDC, the D frontend integrated with gcc? How
- Ant (5/9) Sep 24 2004 ehhh... fast brain, slow eyes... :p
- John Reimer (4/12) Sep 24 2004 Valgrind seems to be slightly useful for working with D programs. I've
Has anyone found a graphical debugger for Linux that'll display D source code? I've found a few gdb front-ends, but I haven't been able to get a lot of them to display D source files, and other misc. problems. Thanks John
Sep 24 2004
On Fri, 24 Sep 2004 21:24:30 -0400, teqDruid wrote:Has anyone found a graphical debugger for Linux that'll display D source code? I've found a few gdb front-ends, but I haven't been able to get a lot of them to display D source files, and other misc. problems. Thanks Johnit's not the front-end. it's not gdb. There is no sufficente information on the code to do that. That was one of mine MIID. gdb can give you the stack trace and step by machine code instructons. which front-ends did you find? (I have been using DDD) Ant
Sep 24 2004
On Fri, 24 Sep 2004 22:03:18 -0400, Ant wrote:On Fri, 24 Sep 2004 21:24:30 -0400, teqDruid wrote:I've tried DDD, insight, and kgdb... gdb kinda works... does the debug executable not include code line numbers, and file names or something? Does GDC do it correctly?Has anyone found a graphical debugger for Linux that'll display D source code? I've found a few gdb front-ends, but I haven't been able to get a lot of them to display D source files, and other misc. problems. Thanks Johnit's not the front-end. it's not gdb. There is no sufficente information on the code to do that. That was one of mine MIID. gdb can give you the stack trace and step by machine code instructons. which front-ends did you find? (I have been using DDD) Ant
Sep 24 2004
On Fri, 24 Sep 2004 22:13:28 -0400, teqDruid wrote:On Fri, 24 Sep 2004 22:03:18 -0400, Ant wrote:no, from http://www.digitalmars.com/d/dcompiler.html " Linux Bugs * -g is not implemented, because I haven't figured out how to do it yet. gdb still works, though, at the global symbol level. " and "global symbol level" to me are class methods. I don't know what you can see with non OO code. here is what I have: Breakpoint 1, 0x407aa9e6 in printf () from /lib/libc.so.6 (gdb) bt as you see I put a breakpoint on printf. Why? because first I have to find out what is the name of my method! however it's very usefull on a segfault as you can see the stack trace. you can also disassemble and see what functions are called. again you'll have to decode the names. for instance from the backtrace we can see the leds.init method is at 0x0816cb0b - lets disassemble it: (gdb) disas 0x0816cb0b Dump of assembler code for function _D4leds4Leds4Leds4initFAAaZv: 0x0816ca68 <+0>: push %ebp 0x0816ca69 <+1>: mov %esp,%ebp 0x0816ca6b <+3>: sub $0x18,%esp 0x0816ca6e <+6>: push %ebx 0x0816ca6f <+7>: push %esi 0x0816ca70 <+8>: push %edi 0x0816ca71 <+9>: mov %eax,0xffffffe8(%ebp) 0x0816ca74 <+12>: call 0x81b56b0 <_D9invariant12_d_invariantFC6ObjectZv> 0x0816ca79 <+17>: mov 0xffffffe8(%ebp),%eax 0x0816ca7c <+20>: mov (%eax),%ecx 0x0816ca7e <+22>: call *0x3c(%ecx) 0x0816ca81 <+25>: push %eax 0x0816ca82 <+26>: pushl 0x81c8d28 0x0816ca88 <+32>: pushl 0x81c8d24 0x0816ca8e <+38>: call 0x819861c <_D4dool2io4Path4Path4joinFC4dool6String6StringAaZC4dool6String6String> 0x0816ca93 <+43>: mov 0xffffffe8(%ebp),%edx 0x0816ca96 <+46>: mov %eax,0x1c(%edx) 0x0816ca99 <+49>: mov %edx,%eax 0x0816ca9b <+51>: mov (%eax),%ebx 0x0816ca9d <+53>: call *0x3c(%ebx) (I changed the output a bit) you can see that the invariante for the object is called and that the 'join' method on the 'Path' class from 'dool' that method returns an instance of String (dool.String.String) and receives a String and a char[]. that seems to correspond to the begining of the actual source code: private: void init(char[][]args) { debug(debugStartup) printf("Leds.init 1\n"); ledsHome = Path.join(getUserHome(),".leds"); the call at address +22 is probably the 'getuserHome()'. now you can do stepi or nexti or until x<address> with stepi you will eventualy get into the method getUserHome that's all I know about gdb and D code Anybody knows more? AntOn Fri, 24 Sep 2004 21:24:30 -0400, teqDruid wrote:I've tried DDD, insight, and kgdb... gdb kinda works... does the debug executable not include code line numbers, and file names or something? Does GDC do it correctly?Has anyone found a graphical debugger for Linux that'll display D source code?
Sep 24 2004
Ant wrote:On Fri, 24 Sep 2004 22:13:28 -0400, teqDruid wrote:Wasn't he asking about GDC, the D frontend integrated with gcc? How well does gdb work with GDC?On Fri, 24 Sep 2004 22:03:18 -0400, Ant wrote:no, from http://www.digitalmars.com/d/dcompiler.html " Linux Bugs * -g is not implemented, because I haven't figured out how to do it yet. gdb still works, though, at the global symbol level. "On Fri, 24 Sep 2004 21:24:30 -0400, teqDruid wrote:I've tried DDD, insight, and kgdb... gdb kinda works... does the debug executable not include code line numbers, and file names or something? Does GDC do it correctly?Has anyone found a graphical debugger for Linux that'll display D source code?
Sep 24 2004
On Fri, 24 Sep 2004 19:58:12 -0700, John Reimer wrote:Ant wrote: Wasn't he asking about GDC, the D frontend integrated with gcc? How well does gdb work with GDC?ehhh... fast brain, slow eyes... :p someone told me GDC works perfectly with gdb (as one could expect). Ant
Sep 24 2004
teqDruid wrote:Has anyone found a graphical debugger for Linux that'll display D source code? I've found a few gdb front-ends, but I haven't been able to get a lot of them to display D source files, and other misc. problems. Thanks JohnValgrind seems to be slightly useful for working with D programs. I've played with it a bit and, along with gdb, could be a useful debugging tool for d.
Sep 24 2004