www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Debuggers???

reply "Joe Meilinger" <jam197 mizzou.edu> writes:
I've tried to debug my D code in Windows using Insight with no success.
D2Debugger looks awesome, but it isn't available yet...Are there any
currently-available free debuggers that work well with D?
Dec 28 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"Joe Meilinger" <jam197 mizzou.edu> wrote in message
news:cqsqqj$2amp$1 digitaldaemon.com...
 I've tried to debug my D code in Windows using Insight with no success.
 D2Debugger looks awesome, but it isn't available yet...Are there any
 currently-available free debuggers that work well with D?

Any debugger that can use Microsoft Codeview debug info will work. That includes the Digital Mars debugger that comes on the Digital Mars CD, or the Microsoft Windbg.exe. Under linux, use gdb.
Dec 28 2004
parent reply redshoan gmail.com writes:
In article <cqsuac$2dnl$1 digitaldaemon.com>, Walter says...
"Joe Meilinger" <jam197 mizzou.edu> wrote in message
news:cqsqqj$2amp$1 digitaldaemon.com...
 I've tried to debug my D code in Windows using Insight with no success.
 D2Debugger looks awesome, but it isn't available yet...Are there any
 currently-available free debuggers that work well with D?

Any debugger that can use Microsoft Codeview debug info will work. That includes the Digital Mars debugger that comes on the Digital Mars CD, or the Microsoft Windbg.exe. Under linux, use gdb.

Has anyone done name mangling support for gdb yet? It certainly works, but it would be nice if the tab completion worked :) Chris
Dec 28 2004
parent reply James Dunne <jdunne4 bradley.edu> writes:
Someone please tell me how to get gdb to actually do something useful when
debugging D...

In article <cqt0cs$2ft5$1 digitaldaemon.com>, redshoan gmail.com says...
In article <cqsuac$2dnl$1 digitaldaemon.com>, Walter says...
"Joe Meilinger" <jam197 mizzou.edu> wrote in message
news:cqsqqj$2amp$1 digitaldaemon.com...
 I've tried to debug my D code in Windows using Insight with no success.
 D2Debugger looks awesome, but it isn't available yet...Are there any
 currently-available free debuggers that work well with D?

Any debugger that can use Microsoft Codeview debug info will work. That includes the Digital Mars debugger that comes on the Digital Mars CD, or the Microsoft Windbg.exe. Under linux, use gdb.

Has anyone done name mangling support for gdb yet? It certainly works, but it would be nice if the tab completion worked :) Chris

Dec 28 2004
parent reply Chris Newton <redshodan dot.gmail.dot.dooot.com> writes:
In article <cqt2oi$2i40$1 digitaldaemon.com>, James Dunne says...
Someone please tell me how to get gdb to actually do something useful when
debugging D...

In article <cqt0cs$2ft5$1 digitaldaemon.com>, redshoan gmail.com says...
In article <cqsuac$2dnl$1 digitaldaemon.com>, Walter says...
"Joe Meilinger" <jam197 mizzou.edu> wrote in message
news:cqsqqj$2amp$1 digitaldaemon.com...
 I've tried to debug my D code in Windows using Insight with no success.
 D2Debugger looks awesome, but it isn't available yet...Are there any
 currently-available free debuggers that work well with D?

Any debugger that can use Microsoft Codeview debug info will work. That includes the Digital Mars debugger that comes on the Digital Mars CD, or the Microsoft Windbg.exe. Under linux, use gdb.

Has anyone done name mangling support for gdb yet? It certainly works, but it would be nice if the tab completion worked :) Chris


Just use gdb like you would for any other program. The only problem is when gdb needs to look at symbols. You have to specify the fully mangled name. For example this is the mangled name for std.ctype.toupper(): _D3std5ctype7toupperFwZw So if you are going to set a breakpoint, do break and hit tab a lot. I believe the symbols always start with _D. And the numbers between module/package names seem to be the order of linkage (or something like that). You can track it down, its just a little annoying because gdb doesnt understand how to unmangle D names so it cant map it to the source files. But because D is linked by the system linker (nothing magic there) gdb can work on all the known symbols. Hope that helps. Chris
Dec 29 2004
next sibling parent "Asaf Karagila" <kas1 netvision.net.il> writes:
if your assembly is good enough, i recommend Olly Debugger.
it's free, it's friendly (as much a native debugger can be :)) and it's 
nice.

- Asaf.
"Chris Newton" <redshodan dot.gmail.dot.dooot.com> wrote in message 
news:cquf8e$rlm$1 digitaldaemon.com...
 In article <cqt2oi$2i40$1 digitaldaemon.com>, James Dunne says...
Someone please tell me how to get gdb to actually do something useful when
debugging D...

In article <cqt0cs$2ft5$1 digitaldaemon.com>, redshoan gmail.com says...
In article <cqsuac$2dnl$1 digitaldaemon.com>, Walter says...
"Joe Meilinger" <jam197 mizzou.edu> wrote in message
news:cqsqqj$2amp$1 digitaldaemon.com...
 I've tried to debug my D code in Windows using Insight with no 
 success.
 D2Debugger looks awesome, but it isn't available yet...Are there any
 currently-available free debuggers that work well with D?

Any debugger that can use Microsoft Codeview debug info will work. That includes the Digital Mars debugger that comes on the Digital Mars CD, or the Microsoft Windbg.exe. Under linux, use gdb.

Has anyone done name mangling support for gdb yet? It certainly works, but it would be nice if the tab completion worked :) Chris


Just use gdb like you would for any other program. The only problem is when gdb needs to look at symbols. You have to specify the fully mangled name. For example this is the mangled name for std.ctype.toupper(): _D3std5ctype7toupperFwZw So if you are going to set a breakpoint, do break and hit tab a lot. I believe the symbols always start with _D. And the numbers between module/package names seem to be the order of linkage (or something like that). You can track it down, its just a little annoying because gdb doesnt understand how to unmangle D names so it cant map it to the source files. But because D is linked by the system linker (nothing magic there) gdb can work on all the known symbols. Hope that helps. Chris

Dec 29 2004
prev sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Chris Newton wrote:

 Just use gdb like you would for any other program. The only problem is when gdb
 needs to look at symbols. You have to specify the fully mangled name. For
 example this is the mangled name for std.ctype.toupper():
 
 _D3std5ctype7toupperFwZw
 
 So if you are going to set a breakpoint, do break and hit tab a lot. I believe
 the symbols always start with _D. And the numbers between module/package names
 seem to be the order of linkage (or something like that). 

The number of characters, actually... std=3,ctype=5,toupper=7,etc. You can see the full details in the DMD source code (file mangle.c) --anders
Dec 29 2004
parent Chris Newton <redshodan dot.gmail.dot.dooot.com> writes:
In article <cqv06l$1e7h$1 digitaldaemon.com>,
=?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= says...
Chris Newton wrote:

 Just use gdb like you would for any other program. The only problem is when gdb
 needs to look at symbols. You have to specify the fully mangled name. For
 example this is the mangled name for std.ctype.toupper():
 
 _D3std5ctype7toupperFwZw
 
 So if you are going to set a breakpoint, do break and hit tab a lot. I believe
 the symbols always start with _D. And the numbers between module/package names
 seem to be the order of linkage (or something like that). 

The number of characters, actually... std=3,ctype=5,toupper=7,etc. You can see the full details in the DMD source code (file mangle.c) --anders

Ahh. That would make sense. :)
Dec 29 2004