Visual D does not always break in function that threw.

Rainer Schuetze r.sagitario at gmx.de
Thu Sep 28 20:19:49 UTC 2017



On 27.09.2017 09:19, Psychological Cleanup wrote:
> On Wednesday, 27 September 2017 at 04:40:59 UTC, Psychological Cleanup 
> wrote:
>> It usually breaks at the calling site. The error message gives the 
>> correct module and line number but this is not the line number show in 
>> visual studio. The function does not show up in the call stack either 
>> making it difficult to debug. I'm referring to templated functions as 
>> it might not do it with normal functions.

This is usually caused by the druntime functions implementing the throw 
not being compiled with debug info and standard stack frames. That way 
the debugger doesn't know how to walk the stack.

You can work around this by compiling a "private" version of the D 
runtime by enabling "build and use local version of phobos with same 
compiler options" on the linker configuration page.

Sometimes it also helpful to load symbols of the Windows DLLs shown in 
the call stack (e.g. kernel32.dll or ntdll.dll) from the Microsoft 
symbol server.

> 
> Also, when in a C callback(using a D function), it seems that it 
> confuses the debugger and no stack entry is shown nor are the autos or 
> watches. The debugger just kinda goes blank now showing anything helpful 
> like it should.
> 

Not sure about this one. Can you show an example?


More information about the Digitalmars-d-debugger mailing list