www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.debugger - Bad stack traces w/ DWT

Very often the stack traces ddbg reports when using DWT are useless. 
Here's an example:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION(0xc0000005) at 
(0x0000050c) thread(4320)
->us


dwt.widgets.Event.Event, void*) () at treeeditor\Snippet111.d:128 from 
EventTable

dwt.widgets.Event.Event, void*) () at treeeditor\Snippet111.d:128 from 
Widget

dwt.widgets.Event.Event, bool, void*) () at treeeditor\Snippet111.d:128 
from Widget

dwt.widgets.Event.Event, void*) () at treeeditor\Snippet111.d:128 from 
Widget

int, class dwt.widgets.Event.Event, void*) () at 
treeeditor\Snippet111.d:128 from Text

int, class dwt.widgets.Event.Event, void*) () at 
treeeditor\Snippet111.d:128 from Text

int, int, void*) () at treeeditor\Snippet111.d:128 from Widget

dwt.widgets.Widget.Widget.wmChar(void*, int, int, void*) () at 
treeeditor\Snippet111.d:128 from Widget

dwt.widgets.Control.Control.WM_CHAR(int, int, void*) () at 
treeeditor\Snippet111.d:128 from Control

dwt.widgets.Text.Text.WM_CHAR(int, int, void*) () at 
treeeditor\Snippet111.d:128 from Text

int, int, void*) () at treeeditor\Snippet111.d:128 from Control

int, void*) () at treeeditor\Snippet111.d:128 from Text

uint, uint,
int, void*) () at treeeditor\Snippet111.d:128 from Display

__D3dwt7widgets7Display7Display14windowProcFuncWPvkkiZi 16 ()
at treeeditor\Snippet111.d:128 from Display




dwt.widgets.Display.Display.readAndDispatch(void*) () at
treeeditor\Snippet111.d:128 from Display


runMain(void*)
() from dmain2

runAll(void*) () from dmain2





As you can see, almost every line reporting a file/line number says 
Snippet111.d:128, which is just the DWT main loop runner in main():

	while (!shell.isDisposed()) {
-->		if (!display.readAndDispatch ()) display.sleep ();
	}

Any possiblity for fixing this?  Any idea why?

--bb
May 16 2008