Thread overview
Debuggers???
Dec 28, 2004
Joe Meilinger
Dec 29, 2004
Walter
Dec 29, 2004
redshoan
Dec 29, 2004
James Dunne
Dec 29, 2004
Chris Newton
Dec 29, 2004
Asaf Karagila
Dec 29, 2004
Chris Newton
December 28, 2004
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?
December 29, 2004
"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.


December 29, 2004
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


December 29, 2004
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
>
>


December 29, 2004
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



December 29, 2004
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
>
>
> 


December 29, 2004
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
December 29, 2004
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. :)