automatic debugging / disabling D's built-in exeption handler

Bill Baxter wbaxter at gmail.com
Sun Nov 5 13:29:44 PST 2006


Sean Kelly wrote:
> Bill Baxter wrote:
> 
>> By following the instructions given, eg, here:
>> http://www.codeproject.com/debug/windbg_part1.asp#_Toc64133667
>>
>> it should be possible to make the debugger pop up automatically for 
>> programs that have exceptions.
>>
>> According to the article above:
>> "WinDbg will be launched if an application throws an exception while 
>> not being debugged and does not handle the exception itself"
>>
>> Apparently D does some sort of top-level catch of such exceptions 
>> right now, because sticking an "asm { int 3; }" in the code just 
>> prints the message "Error: Win32 Exception" instead of launching the 
>> debugger.  Is there some way to disable that?
>>
>> -- 
>> Really what I was trying to do was see if I could get Visual Studio to 
>> debug D code.  Actually it sort of works.  If you have a program with 
>> a main loop, you can use visual studio's Tools->Debug Processes... to 
>> attach to the running process.  If you've built your program with -g, 
>> you can see the stack trace and step through the program normally, and 
>> even set breakpoints.
>>
>> But you can't examine variables.  VisualStudio could tell that there 
>> was a "this" pointer, and knew it was of type MyClass, but it couldn't 
>> tell what was inside of 'this'.  I wonder if there's a way to make a 
>> Visual Studio plugin that would give you this ability?
>>
>> --bb
> 
> 
> Try:
> 
> extern (C) bool no_catch_exceptions;
> 
> no_catch_exceptions = true;

Doesn't quite work.
--> : no identifier for declarator no_catch_exceptions

If you stick the 'no_catch_exceptions=true' into main() or static this() 
then phobos complains that the value changed:
--> "f:\usr\pkg\Dlang\dmd\bin\..\lib\phobos.lib(dmain2)  Offset 1D89AH 
Record Type 0091
  Error 1: Previous Definition Different : _no_catch_exceptions
--- errorlevel 1"



More information about the Digitalmars-d mailing list