digitalmars.D - Debugger for D?
- Chuck.Esterbrook /at/ gmail /dot/ com (7/7) Aug 15 2005 What debuggers, if any, are people actually using with their DMD program...
- Derek Parnell (14/17) Aug 15 2005 Real Programmers Don't Use Debuggers ;-)
- Chuck.Esterbrook /at/ gmail /dot/ com (19/31) Aug 16 2005 I think limiting myself to only some QA and troubleshooting techniques w...
- Ben Hinkle (3/6) Aug 16 2005 Someone started working on this but I don't know the current status:
- pragma (4/10) Aug 16 2005 Did he ever post anything (a zip, URL, anything) to the DNG for his work...
- Charles (15/29) Aug 16 2005 I have been working on a Debugger for months , but have been strapped fo...
- Charles (16/47) Aug 16 2005 It still needs work , right now just run it on a faulty program to see a
- Charles (10/65) Aug 16 2005 Sorry to flood , I would really like help on this if anyone is willing. ...
- Ben Hinkle (7/81) Aug 16 2005 I haven't tried your app but I'm wondering what exactly the debugger has...
- Charles (24/113) Aug 16 2005 isn't
- AJG (5/10) Aug 16 2005 Hm... interesting. I didn't know this could be done. Is there a page on ...
- Ben Hinkle (9/24) Aug 16 2005 It's not in D yet (that's what the OP was requesting and it's what Maxim...
- AJG (6/14) Aug 16 2005 Ok, thanks. So did Walter ever comment on this? I didn't see any replies...
- pragma (20/33) Aug 17 2005 Charles,
- Charles (9/53) Aug 17 2005 I have a vague idea -- something about storing a pointer to a debug tabl...
- J Thomas (6/82) Aug 18 2005 killer! ive been working on a debugger written in d since my visual
- AJG (12/29) Aug 16 2005 I completely agree with everything you've said here. When coding in C# I...
- Chuck.Esterbrook /at/ gmail /dot/ com (27/31) Aug 16 2005 I'm starting to wonder if what we need at a higher level is an open sour...
- pragma (17/25) Aug 17 2005 I've thought about something like that myself. Sort of like an
- Chuck Esterbrook (9/32) Aug 25 2005 I was doing some poking around the news archives and found that
- John Reimer (9/28) Aug 17 2005 Actually, I believe a debugger might be exceptionally useful for D
- Hasan Aljudy (4/16) Aug 16 2005 Someone mentioned (probably along time ago) debugging with MSVC 6
- zwang (4/16) Aug 16 2005 I used MSVC6 and OpenWatcom Windows debugger before I wrote up a logging...
- Chuck Esterbrook (6/22) Aug 24 2005 Would you care to share your logging module and testing framework?
- Hasan Aljudy (75/87) Aug 16 2005 I started lurking around trying to figure out how to do basic debugging
- Hasan Aljudy (3/117) Aug 16 2005 aw, a little correction: you don't need the lsf command .. cdb will know...
- ElfQT (17/24) Aug 17 2005 I'm using Visual Studio 2003, and Open Watcom Debugger 1.3.
What debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc. Does the one with DMC work with DMD executables? http://www.digitalmars.com/ugr/chapter23.html Thanks, -Chuck
Aug 15 2005
On Tue, 16 Aug 2005 06:34:58 +0000 (UTC), Chuck.Esterbrook /at/ gmail /dot/ com wrote:What debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc.Real Programmers Don't Use Debuggers ;-) I am a bit of a luddite in this regard. I still use the odd writef() to 'trace' my code. As a consequence, I only make tiny code changes before each test run, in order to limit the debugging focus. Oh, that and unit tests. I suppose if there was a useful interactive GUI debugger that could really understand D internals etc ... I might be tempted into the dark side. -- Derek (skype: derek.j.parnell) Melbourne, Australia 16/08/2005 4:47:22 PM
Aug 15 2005
In article <xze9vkdbz6oq$.1uac3snm89ho3$.dlg 40tude.net>, Derek Parnell says...On Tue, 16 Aug 2005 06:34:58 +0000 (UTC), Chuck.Esterbrook /at/ gmail /dot/ com wrote:I think limiting myself to only some QA and troubleshooting techniques would be a poor choice. I'm a proud user of pre-post-conditions, class invariants, asserts, unit tests, print statements, exception handling, static source code analysis and debuggers. I know from experience that if I removed any one of those "from the equation" my productivity would be reduced. They all have pros and cons and I enjoy applying each of them when they are called for. I've received substantial benefits from: - Python's dumping of the entire stack trace for uncaught exceptions. This really helps diagnosis. - Python's ability to include additional run time information with assertions (a topic recently brought up in this newsgroup). - WingIDE for interacting with a live Python program. Before my D codebase becomes substantial, I hope to acquire similar capabilities for D. Hopefully, someone already has to some degree and can share their actual experiences. -ChuckWhat debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc.Real Programmers Don't Use Debuggers ;-) I am a bit of a luddite in this regard. I still use the odd writef() to 'trace' my code. As a consequence, I only make tiny code changes before each test run, in order to limit the debugging focus. Oh, that and unit tests. I suppose if there was a useful interactive GUI debugger that could really understand D internals etc ... I might be tempted into the dark side.
Aug 16 2005
I've received substantial benefits from: - Python's dumping of the entire stack trace for uncaught exceptions. This really helps diagnosis.Someone started working on this but I don't know the current status: http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.html
Aug 16 2005
In article <ddsm6e$21n$1 digitaldaemon.com>, Ben Hinkle says...Did he ever post anything (a zip, URL, anything) to the DNG for his work? Maybe someone should hunt down his email? - EricAnderton at yahooI've received substantial benefits from: - Python's dumping of the entire stack trace for uncaught exceptions. This really helps diagnosis.Someone started working on this but I don't know the current status: http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.html
Aug 16 2005
I have been working on a Debugger for months , but have been strapped for time lately ( like all of us. ). It uses dbghelp & imghelp to extract symbols. What its missing is the ability to get 'type' info from variables so it can 'see' their contents , however Walter said he'd totally add this into the debug info , soon as their codes are figured out. What I have now is really rough , its a mess in fact . I will clean it up today and put it on the web, but I want to post while everyone is still interested. Maybe if we all combine what little time we have we can finish it and get a debugger ! Charlie "pragma" <pragma_member pathlink.com> wrote in message news:ddsrcu$7f9$1 digitaldaemon.com...In article <ddsm6e$21n$1 digitaldaemon.com>, Ben Hinkle says...ThisI've received substantial benefits from: - Python's dumping of the entire stack trace for uncaught exceptions.MaybeDid he ever post anything (a zip, URL, anything) to the DNG for his work?really helps diagnosis.Someone started working on this but I don't know the current status: http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.htmlsomeone should hunt down his email? - EricAnderton at yahoo
Aug 16 2005
It still needs work , right now just run it on a faulty program to see a call stack dump. http://www.thecodebase.com/DMDebugApi.zip DMDebugApi\DMDebugLib.dsw is the workspace. Youll need latest windows SDK , and MSVC6 ( or 7 if you can get it working ). Eric I know you've been researching dynamic libs / OMF / COFF etc, would you have time to work on this ? If so maybe we can move discussion to DSP forums. Charlie "Charles" <noone nowhere.com> wrote in message news:ddsufj$atb$1 digitaldaemon.com...I have been working on a Debugger for months , but have been strapped for time lately ( like all of us. ). It uses dbghelp & imghelp to extract symbols. What its missing is the ability to get 'type' info fromvariablesso it can 'see' their contents , however Walter said he'd totally addthisinto the debug info , soon as their codes are figured out. What I have now is really rough , its a mess in fact . I will clean it up today and put it on the web, but I want to post while everyone is still interested. Maybe if we all combine what little time we have we can finish it and getadebugger ! Charlie "pragma" <pragma_member pathlink.com> wrote in message news:ddsrcu$7f9$1 digitaldaemon.com...work?In article <ddsm6e$21n$1 digitaldaemon.com>, Ben Hinkle says...ThisI've received substantial benefits from: - Python's dumping of the entire stack trace for uncaught exceptions.Did he ever post anything (a zip, URL, anything) to the DNG for hisreally helps diagnosis.Someone started working on this but I don't know the current status: http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.htmlMaybesomeone should hunt down his email? - EricAnderton at yahoo
Aug 16 2005
Sorry to flood , I would really like help on this if anyone is willing. I think having a fully functional debugger would do alot for the language. Charlie "Charles" <noone nowhere.com> wrote in message news:ddt9us$nne$1 digitaldaemon.com...It still needs work , right now just run it on a faulty program to see a call stack dump. http://www.thecodebase.com/DMDebugApi.zip DMDebugApi\DMDebugLib.dsw is the workspace. Youll need latest windows SDK , and MSVC6 ( or 7 if you can get it working ). Eric I know you've been researching dynamic libs / OMF / COFF etc, wouldyouhave time to work on this ? If so maybe we can move discussion to DSP forums. Charlie "Charles" <noone nowhere.com> wrote in message news:ddsufj$atb$1 digitaldaemon.com...forI have been working on a Debugger for months , but have been strappeduptime lately ( like all of us. ). It uses dbghelp & imghelp to extract symbols. What its missing is the ability to get 'type' info fromvariablesso it can 'see' their contents , however Walter said he'd totally addthisinto the debug info , soon as their codes are figured out. What I have now is really rough , its a mess in fact . I will clean itgettoday and put it on the web, but I want to post while everyone is still interested. Maybe if we all combine what little time we have we can finish it andaexceptions.debugger ! Charlie "pragma" <pragma_member pathlink.com> wrote in message news:ddsrcu$7f9$1 digitaldaemon.com...In article <ddsm6e$21n$1 digitaldaemon.com>, Ben Hinkle says...I've received substantial benefits from: - Python's dumping of the entire stack trace for uncaughtThiswork?Did he ever post anything (a zip, URL, anything) to the DNG for hisreally helps diagnosis.Someone started working on this but I don't know the current status: http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.htmlMaybesomeone should hunt down his email? - EricAnderton at yahoo
Aug 16 2005
I haven't tried your app but I'm wondering what exactly the debugger has to do with dumping a stack trace on an uncaught exception. I had the impression the stack would be printed by the program as it exists even when there isn't a debugger controlling things. Similarly ordinary D code can request a stack dump or get the stack from an exception. "Charles" <noone nowhere.com> wrote in message news:ddtj8s$11bo$1 digitaldaemon.com...Sorry to flood , I would really like help on this if anyone is willing. I think having a fully functional debugger would do alot for the language. Charlie "Charles" <noone nowhere.com> wrote in message news:ddt9us$nne$1 digitaldaemon.com...It still needs work , right now just run it on a faulty program to see a call stack dump. http://www.thecodebase.com/DMDebugApi.zip DMDebugApi\DMDebugLib.dsw is the workspace. Youll need latest windows SDK , and MSVC6 ( or 7 if you can get it working ). Eric I know you've been researching dynamic libs / OMF / COFF etc, wouldyouhave time to work on this ? If so maybe we can move discussion to DSP forums. Charlie "Charles" <noone nowhere.com> wrote in message news:ddsufj$atb$1 digitaldaemon.com...forI have been working on a Debugger for months , but have been strappeduptime lately ( like all of us. ). It uses dbghelp & imghelp to extract symbols. What its missing is the ability to get 'type' info fromvariablesso it can 'see' their contents , however Walter said he'd totally addthisinto the debug info , soon as their codes are figured out. What I have now is really rough , its a mess in fact . I will clean itgettoday and put it on the web, but I want to post while everyone is still interested. Maybe if we all combine what little time we have we can finish it andaexceptions.debugger ! Charlie "pragma" <pragma_member pathlink.com> wrote in message news:ddsrcu$7f9$1 digitaldaemon.com...In article <ddsm6e$21n$1 digitaldaemon.com>, Ben Hinkle says...I've received substantial benefits from: - Python's dumping of the entire stack trace for uncaughtThiswork?Did he ever post anything (a zip, URL, anything) to the DNG for hisreally helps diagnosis.Someone started working on this but I don't know the current status: http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.htmlMaybesomeone should hunt down his email? - EricAnderton at yahoo
Aug 16 2005
I haven't tried your app but I'm wondering what exactly the debugger hastodo with dumping a stack trace on an uncaught exception. I had theimpressionthe stack would be printed by the program as it exists even when thereisn'ta debugger controlling things.Its certainly possible , my limited use of debuggers usually is just 'bt' in GDB and using MSVC's 'Call Stack' window , this is the backtrace Im talking about. At the same point its also possible to enumerate through local variables and display their variables etc.. , thats what Im trying to implement -- it actually shoudln't take that much , just a good chunk of time. Charlie "Ben Hinkle" <bhinkle mathworks.com> wrote in message news:ddtkhh$12gl$1 digitaldaemon.com...I haven't tried your app but I'm wondering what exactly the debugger hastodo with dumping a stack trace on an uncaught exception. I had theimpressionthe stack would be printed by the program as it exists even when thereisn'ta debugger controlling things. Similarly ordinary D code can request astackdump or get the stack from an exception. "Charles" <noone nowhere.com> wrote in message news:ddtj8s$11bo$1 digitaldaemon.com...ISorry to flood , I would really like help on this if anyone is willing.athink having a fully functional debugger would do alot for the language. Charlie "Charles" <noone nowhere.com> wrote in message news:ddt9us$nne$1 digitaldaemon.com...It still needs work , right now just run it on a faulty program to seewouldcall stack dump. http://www.thecodebase.com/DMDebugApi.zip DMDebugApi\DMDebugLib.dsw is the workspace. Youll need latest windows SDK , and MSVC6 ( or 7 if you can get it working ). Eric I know you've been researching dynamic libs / OMF / COFF etc,extractyouhave time to work on this ? If so maybe we can move discussion to DSP forums. Charlie "Charles" <noone nowhere.com> wrote in message news:ddsufj$atb$1 digitaldaemon.com...forI have been working on a Debugger for months , but have been strappedtime lately ( like all of us. ). It uses dbghelp & imghelp toaddsymbols. What its missing is the ability to get 'type' info fromvariablesso it can 'see' their contents , however Walter said he'd totallyitthisinto the debug info , soon as their codes are figured out. What I have now is really rough , its a mess in fact . I will cleanstilluptoday and put it on the web, but I want to post while everyone isstatus:getinterested. Maybe if we all combine what little time we have we can finish it andaexceptions.debugger ! Charlie "pragma" <pragma_member pathlink.com> wrote in message news:ddsrcu$7f9$1 digitaldaemon.com...In article <ddsm6e$21n$1 digitaldaemon.com>, Ben Hinkle says...I've received substantial benefits from: - Python's dumping of the entire stack trace for uncaughtThisreally helps diagnosis.Someone started working on this but I don't know the currentwork?http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.htmlDid he ever post anything (a zip, URL, anything) to the DNG for hisMaybesomeone should hunt down his email? - EricAnderton at yahoo
Aug 16 2005
Hi,I haven't tried your app but I'm wondering what exactly the debugger has to do with dumping a stack trace on an uncaught exception. I had the impression the stack would be printed by the program as it exists even when there isn't a debugger controlling things. Similarly ordinary D code can request a stack dump or get the stack from an exception.Hm... interesting. I didn't know this could be done. Is there a page on how to do this or maybe some example code? Thanks! --AJG.
Aug 16 2005
"AJG" <AJG_member pathlink.com> wrote in message news:ddu16l$1dus$1 digitaldaemon.com...Hi,It's not in D yet (that's what the OP was requesting and it's what Maxime was working on). The links I posted in my first reply to this thread http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.html are the only clues I know about for getting it implemented. I haven't checked some of the other replys on this thread for more details. That's all I know.I haven't tried your app but I'm wondering what exactly the debugger has to do with dumping a stack trace on an uncaught exception. I had the impression the stack would be printed by the program as it exists even when there isn't a debugger controlling things. Similarly ordinary D code can request a stack dump or get the stack from an exception.Hm... interesting. I didn't know this could be done. Is there a page on how to do this or maybe some example code? Thanks! --AJG.
Aug 16 2005
Hi,It's not in D yet (that's what the OP was requesting and it's what Maxime was working on).Hm... is that "yet" official?The links I posted in my first reply to this thread http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.html are the only clues I know about for getting it implemented. I haven't checked some of the other replys on this thread for more details. That's all I know.Ok, thanks. So did Walter ever comment on this? I didn't see any replies in either thread (or this one). Cheers, --AJG.
Aug 16 2005
Charles wrote:It still needs work , right now just run it on a faulty program to see a call stack dump. http://www.thecodebase.com/DMDebugApi.zip DMDebugApi\DMDebugLib.dsw is the workspace. Youll need latest windows SDK , and MSVC6 ( or 7 if you can get it working ). Eric I know you've been researching dynamic libs / OMF / COFF etc, would you have time to work on this ? If so maybe we can move discussion to DSP forums.Charles, I'll give your debugger a solid look sometime later on this week. However, I won't be able to do anything productive coding wise to it as I don't have MSVC6 installed (used to, but that was my last machine). I'd love to help your efforts via my current research, if that's what you need. Besides, its all quite synergistic as I could use a good debugging tool for what I'm working on. So far I have an open OMF parser (no linker yet) that's yours to hack up all you like; its a frightful mess, but it can dump DMD's OMF files pretty well. Its currently in the DSP SVN repos. What I cannot fathom is how runtime object loading and linking interacts with debug information. Right now, I feel like I run the risk of breaking debug info via runtime linking due to ignorance; that's a drawback that is simply unacceptable. Anyway, feel free to run amok in the DSP forum on dsource for any questions and issues you think I might be able to answer (I'd like to keep it in the forum, so it can stand as a research resource). -- - EricAnderton at yahoo
Aug 17 2005
I'd love to help your efforts via my current research, if that's what you need. Besides, its all quite synergistic as I could use a good debugging tool for what I'm working on.That'd be great ( good word syngery ).So far I have an open OMF parser (no linker yet) that's yours to hack up all you like; its a frightful mess, but it can dump DMD's OMF files pretty well. Its currently in the DSP SVN repos.Very cool , checking it out .What I cannot fathom is how runtime object loading and linking interacts with debug information.I have a vague idea -- something about storing a pointer to a debug table ... ( mutter ... trail off ).Anyway, feel free to run amok in the DSP forum on dsource for any questions and issues you think I might be able to answer (I'd like to keep it in the forum, so it can stand as a research resource).Aye sounds good! Charlie "pragma" <EricAnderton youknowthedrill.yahoo> wrote in message news:dducul$1mm6$1 digitaldaemon.com...Charles wrote:youIt still needs work , right now just run it on a faulty program to see a call stack dump. http://www.thecodebase.com/DMDebugApi.zip DMDebugApi\DMDebugLib.dsw is the workspace. Youll need latest windows SDK , and MSVC6 ( or 7 if you can get it working ). Eric I know you've been researching dynamic libs / OMF / COFF etc, wouldhave time to work on this ? If so maybe we can move discussion to DSP forums.Charles, I'll give your debugger a solid look sometime later on this week. However, I won't be able to do anything productive coding wise to it as I don't have MSVC6 installed (used to, but that was my last machine). I'd love to help your efforts via my current research, if that's what you need. Besides, its all quite synergistic as I could use a good debugging tool for what I'm working on. So far I have an open OMF parser (no linker yet) that's yours to hack up all you like; its a frightful mess, but it can dump DMD's OMF files pretty well. Its currently in the DSP SVN repos. What I cannot fathom is how runtime object loading and linking interacts with debug information. Right now, I feel like I run the risk of breaking debug info via runtime linking due to ignorance; that's a drawback that is simply unacceptable. Anyway, feel free to run amok in the DSP forum on dsource for any questions and issues you think I might be able to answer (I'd like to keep it in the forum, so it can stand as a research resource). -- - EricAnderton at yahoo
Aug 17 2005
killer! ive been working on a debugger written in d since my visual studio began crashing and i got tired of re-installing it (again)... thanks very much for this code, you just saved me some work. im going to convert some of it to d since im never going to write c++ again unless i absolutely have to Charles wrote:It still needs work , right now just run it on a faulty program to see a call stack dump. http://www.thecodebase.com/DMDebugApi.zip DMDebugApi\DMDebugLib.dsw is the workspace. Youll need latest windows SDK , and MSVC6 ( or 7 if you can get it working ). Eric I know you've been researching dynamic libs / OMF / COFF etc, would you have time to work on this ? If so maybe we can move discussion to DSP forums. Charlie "Charles" <noone nowhere.com> wrote in message news:ddsufj$atb$1 digitaldaemon.com...I have been working on a Debugger for months , but have been strapped for time lately ( like all of us. ). It uses dbghelp & imghelp to extract symbols. What its missing is the ability to get 'type' info fromvariablesso it can 'see' their contents , however Walter said he'd totally addthisinto the debug info , soon as their codes are figured out. What I have now is really rough , its a mess in fact . I will clean it up today and put it on the web, but I want to post while everyone is still interested. Maybe if we all combine what little time we have we can finish it and getadebugger ! Charlie "pragma" <pragma_member pathlink.com> wrote in message news:ddsrcu$7f9$1 digitaldaemon.com...work?In article <ddsm6e$21n$1 digitaldaemon.com>, Ben Hinkle says...ThisI've received substantial benefits from: - Python's dumping of the entire stack trace for uncaught exceptions.Did he ever post anything (a zip, URL, anything) to the DNG for hisreally helps diagnosis.Someone started working on this but I don't know the current status: http://www.digitalmars.com/d/archives/digitalmars/D/22562.html http://www.digitalmars.com/d/archives/digitalmars/D/22967.htmlMaybesomeone should hunt down his email? - EricAnderton at yahoo
Aug 18 2005
Hi,I think limiting myself to only some QA and troubleshooting techniques would be a poor choice. I'm a proud user of pre-post-conditions, class invariants, asserts, unit tests, print statements, exception handling, static source code analysis and debuggers. I know from experience that if I removed any one of those "from the equation" my productivity would be reduced. They all have pros and cons and I enjoy applying each of them when they are called for. I've received substantial benefits from: - Python's dumping of the entire stack trace for uncaught exceptions. This really helps diagnosis. - Python's ability to include additional run time information with assertions (a topic recently brought up in this newsgroup). - WingIDE for interacting with a live Python program.the enourmous benefit of the VS2K5 environment with its phenomenal debugger. I mean that thing is almost a sentient creature by now. It is really painful to go back and forth between this and printf() when coding in D. OTOH, a rich environment like that _coupled_ with D would probably kick butt.Before my D codebase becomes substantial, I hope to acquire similar capabilities for D. Hopefully, someone already has to some degree and can share their actual experiences.Personally, all my debugging efforts have failed miserably. I can't even get GDB (various versions) to run my D programs _at all_ under linux. Sigh... this is an area that could really use improvement. Here's to something better coming along. --AJG.
Aug 16 2005
In article <ddspqq$5p3$1 digitaldaemon.com>, AJG says...Personally, all my debugging efforts have failed miserably. I can't even get GDB (various versions) to run my D programs _at all_ under linux. Sigh... this is an area that could really use improvement.I'm starting to wonder if what we need at a higher level is an open source D-to-C program (written in D, of course). We could compile with dmc, gcc, etc. The resulting C code could be beefed up with stack tracing/management code and other goodies as we need them. Or maybe debugged directly. We could fix syntax problems like "if(int x = foo()) { <use x>" and so on. With more imagination, we could probably double the list of benefits. Another idea is to write a D-to-D translator. That would be even easier since the target language is identical (or in the case of language changes, near-identical). The generated D would look different from the original source to the extent that debugging aids were turned on and language features had been tweaked. Something like:d2d -debug -stack -trace-mem MyProgram.dwhich would do the translation and invoke dmd.exe to finish off compilation. Hypothetically: * "-stack" turns on whatever is needed to ask for stacks programmatically and to dump them on uncaught errors. * "-trace-mem" turns on whatever is needed to write stats on object creation and destruction during execution. Although I feel a little silly proprosing something I don't have time to work on. :-) However, I've read references to a D front end. Is that in D? If so, d2d could be written in D which is certainly more productive than writing anything in C or C++. d2d could be our escape hatch for when we need to enhance D sooner rather than later. Reactions? -Chuck
Aug 16 2005
Chuck.Esterbrook /at/ gmail /dot/ com wrote:Another idea is to write a D-to-D translator. That would be even easier since the target language is identical (or in the case of language changes, near-identical). The generated D would look different from the original source to the extent that debugging aids were turned on and language features had been tweaked.I've thought about something like that myself. Sort of like an aspect-oriented template for a whole source tree, eh? Composed in an abstract fashion, it could be a very versatile tool in its own right.Although I feel a little silly proprosing something I don't have time to work on. :-)Hey, if you've got an hour, just throw a crude specification up on the Wiki with "please edit me if you want to contribute" plastered all over it. Odds are you're probably a few more thoughts ahead of the rest of us on that idea. Besides, this newsgroup is positively dreadful for archiving good concepts (as our debugger debacle has demonstrated).However, I've read references to a D front end. Is that in D?I've done some hacking there myself. Its a funny thing: its written in C, but most of that code are thinly veiled D-isms. Picking through the source, one gets an impression of why Walter started D in the first place. Eventually, some brave soul will convert this over to D and will likely see that its a fairly straightforward task. -- - EricAnderton at yahoo
Aug 17 2005
On Wed, 17 Aug 2005 00:14:13 -0700, pragma <EricAnderton youknowthedrill.yahoo> wrote:Chuck.Esterbrook /at/ gmail /dot/ com wrote:I was doing some poking around the news archives and found that someone already has a d2d translator! http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D/26468 http://languagemachine.sourceforge.net/ I haven't tried it out yet, but thought I would add mention of it to this thread. -ChuckAnother idea is to write a D-to-D translator. That would be even easier since the target language is identical (or in the case of language changes, near-identical). The generated D would look different from the original source to the extent that debugging aids were turned on and language features had been tweaked.I've thought about something like that myself. Sort of like an aspect-oriented template for a whole source tree, eh? Composed in an abstract fashion, it could be a very versatile tool in its own right.Although I feel a little silly proprosing something I don't have time to work on. :-)Hey, if you've got an hour, just throw a crude specification up on the Wiki with "please edit me if you want to contribute" plastered all over it. Odds are you're probably a few more thoughts ahead of the rest of us on that idea. Besides, this newsgroup is positively dreadful for archiving good concepts (as our debugger debacle has demonstrated).However, I've read references to a D front end. Is that in D?I've done some hacking there myself. Its a funny thing: its written in C, but most of that code are thinly veiled D-isms. Picking through the source, one gets an impression of why Walter started D in the first place. Eventually, some brave soul will convert this over to D and will likely see that its a fairly straightforward task.
Aug 25 2005
Derek Parnell wrote:On Tue, 16 Aug 2005 06:34:58 +0000 (UTC), Chuck.Esterbrook /at/ gmail /dot/ com wrote:Actually, I believe a debugger might be exceptionally useful for D program troubleshooting at this point of the game. D is still beta... A debugger may provide a useful perspective in determining d programming aberrations due to language issues. It can be hard to hunt such problems down otherwise. Of course, I guess we have managed up to this point without one (excepting the marginal uses of windbg and the gnu debugger). -JJRWhat debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc.Real Programmers Don't Use Debuggers ;-) I am a bit of a luddite in this regard. I still use the odd writef() to 'trace' my code. As a consequence, I only make tiny code changes before each test run, in order to limit the debugging focus. Oh, that and unit tests. I suppose if there was a useful interactive GUI debugger that could really understand D internals etc ... I might be tempted into the dark side.
Aug 17 2005
Chuck.Esterbrook /at/ gmail /dot/ com wrote:What debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc. Does the one with DMC work with DMD executables? http://www.digitalmars.com/ugr/chapter23.html Thanks, -ChuckSomeone mentioned (probably along time ago) debugging with MSVC 6 http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport#MicrosoftVisualC60 I don't know if that still applies.
Aug 16 2005
Chuck.Esterbrook /at/ gmail /dot/ com wrote:What debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc. Does the one with DMC work with DMD executables? http://www.digitalmars.com/ugr/chapter23.html Thanks, -ChuckI used MSVC6 and OpenWatcom Windows debugger before I wrote up a logging module plus a testing framework which enabled me to locate bugs quickly without the need of a full-fledged debugger.
Aug 16 2005
On Tue, 16 Aug 2005 23:04:47 +0800, zwang <nehzgnaw gmail.com> wrote:Chuck.Esterbrook /at/ gmail /dot/ com wrote:Would you care to share your logging module and testing framework? And regardless, can you say what your testing framework provides that the unittest { } feature does not? Thanks, ChuckWhat debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc. Does the one with DMC work with DMD executables? http://www.digitalmars.com/ugr/chapter23.html Thanks, -ChuckI used MSVC6 and OpenWatcom Windows debugger before I wrote up a logging module plus a testing framework which enabled me to locate bugs quickly without the need of a full-fledged debugger.
Aug 24 2005
Chuck.Esterbrook /at/ gmail /dot/ com wrote:What debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc. Does the one with DMC work with DMD executables? http://www.digitalmars.com/ugr/chapter23.html Thanks, -ChuckI started lurking around trying to figure out how to do basic debugging on windows .. You can actually use WinDbg to step through the source code and set break points. First you're gonna have to download some debugging tools for windows: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx you can use cdb from the command line or you windbg (gui wrapper around cdb). Before you use cdb you need to add its path to the system path variable. Now to show an example of stepping through the code: setup a directory and create a .d file in it (I called it test.d) and just write some code, like: <code> import std.stdio; void main() { writefln("hello world!"); writefln("line 2"); writefln("this is the third line!"); writefln("4th line"); } </code> compile it with -g and -debug #dmd test.d -g -debug that should create a test.exe for you now load it with cdb #cdb test you'll see some crap which you can ignore for now. what we want is to start at the program's main() function and step through lines one by one. by default, cdb will be in "assembly mode", i.e. it will show you assembly commands and memore offsets, instead of source lines. we can issue few commands to cdb to switch to "source mode". #l+l #l+s #l+t #l+o there is still another thing .. cdb doesn't know what is our source file, so we have to tell it to load it #lsf test.d next, set a break point at the program's start, which btw is _Dmain, not main #bp _Dmain and you can ignore error messeges. now let the program run till it reaches that break point: #g now you can step through with #p and step inside functions with #t if you press Enter on the keyboard, the last command will be repeated. That's all I could figure out by now. You can do the same things with windbg. open WinDbg, and go File->Open Source file and load test.d then File->Open Executable and load test.exe ignore the workspace dialoge (choose anything .. yes or no .. I don't know what that does). Then View->Command Then make sure that Debug -> Source Mode is checked. (that takes care of all the l+ options) now, in the command window set the break point to _Dmain like last time and run the program #bp _Dmain #g now you can use the GUI buttons to step through the code. One thing I noticed, if you declare a variable but never use it, the line numbers will be off by one.
Aug 16 2005
Hasan Aljudy wrote:Chuck.Esterbrook /at/ gmail /dot/ com wrote:aw, a little correction: you don't need the lsf command .. cdb will know which source files it needs.What debuggers, if any, are people actually using with their DMD programs on Windows? You know: setting breakpoints, examining a live stack when an error occurs, etc. Does the one with DMC work with DMD executables? http://www.digitalmars.com/ugr/chapter23.html Thanks, -ChuckI started lurking around trying to figure out how to do basic debugging on windows .. You can actually use WinDbg to step through the source code and set break points. First you're gonna have to download some debugging tools for windows: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx you can use cdb from the command line or you windbg (gui wrapper around cdb). Before you use cdb you need to add its path to the system path variable. Now to show an example of stepping through the code: setup a directory and create a .d file in it (I called it test.d) and just write some code, like: <code> import std.stdio; void main() { writefln("hello world!"); writefln("line 2"); writefln("this is the third line!"); writefln("4th line"); } </code> compile it with -g and -debug #dmd test.d -g -debug that should create a test.exe for you now load it with cdb #cdb test you'll see some crap which you can ignore for now. what we want is to start at the program's main() function and step through lines one by one. by default, cdb will be in "assembly mode", i.e. it will show you assembly commands and memore offsets, instead of source lines. we can issue few commands to cdb to switch to "source mode". #l+l #l+s #l+t #l+o there is still another thing .. cdb doesn't know what is our source file, so we have to tell it to load it #lsf test.d next, set a break point at the program's start, which btw is _Dmain, not main #bp _Dmain and you can ignore error messeges. now let the program run till it reaches that break point: #g now you can step through with #p and step inside functions with #t if you press Enter on the keyboard, the last command will be repeated. That's all I could figure out by now. You can do the same things with windbg. open WinDbg, and go File->Open Source file and load test.d then File->Open Executable and load test.exe ignore the workspace dialoge (choose anything .. yes or no .. I don't know what that does). Then View->Command Then make sure that Debug -> Source Mode is checked. (that takes care of all the l+ options) now, in the command window set the break point to _Dmain like last time and run the program #bp _Dmain #g now you can use the GUI buttons to step through the code. One thing I noticed, if you declare a variable but never use it, the line numbers will be off by one.
Aug 16 2005
I'm using Visual Studio 2003, and Open Watcom Debugger 1.3. VS is unable show any compound variables, Watcom is able, but for some unknown reason to me, Watcom shows different (improper) float values. Here's a link to a VS solution and project - you can build and debug D in VS with that. (If you want to add new file, add it manually by modifying .vcproj <Files> section. And of course, you have to modify the path to dmd.exe, if needed.) http://elfqt.simeis.hu/szallit/D/D_VS_sampleSln.zip (By the way, I also managed to port the first five DirectX D3D tutorials to D. If anyone interested, let me know and I will upload.) ElfQT "Chuck.Esterbrook /at/ gmail /dot/ com" <Chuck.Esterbrook_member pathlink.com> wrote in message news:dds1ei$2ff9$1 digitaldaemon.com...What debuggers, if any, are people actually using with their DMD programsonWindows? You know: setting breakpoints, examining a live stack when anerroroccurs, etc. Does the one with DMC work with DMD executables? http://www.digitalmars.com/ugr/chapter23.html Thanks, -Chuck
Aug 17 2005