Help with GDB?

naryl cyNOSPAM at ngs.ru
Wed Dec 31 16:04:23 PST 2008


jq Wrote:

> Reposted from digitmars.D.debugger, because there seems to be no life there:
> 
> Note that I'm seeing the same problem with gdc compiled programs.  This is on linux - debian testing, to be precise.  Thanks for any help here.
> 
> ---------
> 
> Hi.  I'm porting a program from C++ to D and finally at the point to try running it.  Needless to say, there are bugs, and I'm trying to debug them.
> 
> I've applied the patch floating around to GDB 6.8 to support D.  I then take a trivial hello world program, compile with dmd -g and run inside gdb.  Whether or not I use the D patches, I get the following behavior.
> 
> Any suggestions?
> 
> Thanks
> 
> jlquinn at cerberus:~/d$ gdb ./junk
> GNU gdb 6.8-debian
> Copyright (C) 2008 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu"...
> (gdb) b main
> Breakpoint 1 at 0x804aa79
> (gdb) run
> Starting program: /home/jlquinn/d/junk
> [Thread debugging using libthread_db enabled]
> [New Thread 0xf7d43ae0 (LWP 22977)]
> [Switching to Thread 0xf7d43ae0 (LWP 22977)]
> 
> Breakpoint 1, 0x0804aa79 in main ()
> Current language:  auto; currently asm
> (gdb) l
> 1        /tmp/cc2j8MlC.s: No such file or directory.
>         in /tmp/cc2j8MlC.s
> (gdb)
> 

For some reason you have to set breakpoints using line numbers or mangled names such as _Dmain. Also when debugging dmd-compiled binaries gdb won't show you line numbers in backtrace. The only solution that I know of is to compile with ldc. Haven't tried gdc yet.



More information about the Digitalmars-d mailing list