June 05, 2008
I've only seen this in debug mode, and it happens quite rare. I get the context menu 99 of 100 times, but sometimes it crashes... I can't find any logical reason for this.


Tango backtrace hack intiated
Unhandled win32 exception!
Error: Access Violation (object.Exception)
backtrace:
 7c9012f1 ???
 7e428c20 ???
 0046a256 void dwt.widgets.Menu.Menu.createItem(class
dwt.widgets.MenuItem.MenuI
tem, int, void*) (+f6) c:\d\dmd\import\dwt-win\dwt\widgets\Menu.d:516
 0054a0d9 class dwt.widgets.MenuItem.MenuItem
dwt.widgets.MenuItem.MenuItem._cto
r(class dwt.widgets.Menu.Menu, int, void*) (+41)
c:\d\dmd\import\dwt-win\dwt\wid
gets\MenuItem.d:130
 00408f02 void mui.main.Application.createDataSetCommandsMenuItems(class
dwt.wid
gets.Menu.Menu, int, int, void*) (+362) src\mui\main.d:1474
 004095a6 class dwt.widgets.Menu.Menu
mui.main.Application.createTreeContextMenu
(void*) (+2ca) src\mui\main.d:1661
 004092c8 void mui.main.Application.createCommandTree(void*) . void
__anonclass1
49.menuDetected(class dwt.events.MenuDetectEvent.MenuDetectEvent, void*)¶
(+3c)
src\mui\main.d:1580
 0052b61c void dwt.widgets.TypedListener.TypedListener.handleEvent(class
dwt.wid
gets.Event.Event, void*)³ (+5ec)
c:\d\dmd\import\dwt-win\dwt\widgets\TypedListen
er.d:216
 0058822e void dwt.widgets.EventTable.EventTable.sendEvent(class
dwt.widgets.Eve
nt.Event, void*) (+fa) c:\d\dmd\import\dwt-win\dwt\widgets\EventTable.d:91
 004efffc void dwt.widgets.Widget.Widget.sendEvent(class
dwt.widgets.Event.Event
, void*)I (+40) c:\d\dmd\import\dwt-win\dwt\widgets\Widget.d:1038
 004f00df void dwt.widgets.Widget.Widget.sendEvent(int, class
dwt.widgets.Event.
Event, bool, void*) (+8b) c:\d\dmd\import\dwt-win\dwt\widgets\Widget.d:1060
 004f004e void dwt.widgets.Widget.Widget.sendEvent(int, class
dwt.widgets.Event.
Event, void*) (+22) c:\d\dmd\import\dwt-win\dwt\widgets\Widget.d:1046
 004f0a7c bool dwt.widgets.Widget.Widget.showMenu(int, int, void*) (+38)
c:\d\dm
d\import\dwt-win\dwt\widgets\Widget.d:1347
 004f0cbd class dwt.internal.win32.OS.LDWTRESULT
dwt.widgets.Widget.Widget.wmCon
textMenu(void*, int, int, void*) (+b5)
c:\d\dmd\import\dwt-win\dwt\widgets\Widge
t.d:1440
 0050586d class dwt.internal.win32.OS.LDWTRESULT
dwt.widgets.Control.Control.WM_
CONTEXTMENU(int, int, void*) (+25)
c:\d\dmd\import\dwt-win\dwt\widgets\Control.d
:3975
 00504f27 int dwt.widgets.Control.Control.windowProc(void*, int, int, int,
void*
) (+f3) c:\d\dmd\import\dwt-win\dwt\widgets\Control.d:3837
 00575d0d int dwt.widgets.Tree.Tree.windowProc(void*, int, int, int, void*)
(+4e
9) c:\d\dmd\import\dwt-win\dwt\widgets\Tree.d:5762
 004fd73a int dwt.widgets.Display.Display.windowProc(void*, uint, uint, int,
voi
d*) (+18e) c:\d\dmd\import\dwt-win\dwt\widgets\Display.d:4613
 004fd590 _D3dwt7widgets7Display7Display14windowProcFuncWPvkkiZi (+20)
c:\d\dmd\
import\dwt-win\dwt\widgets\Display.d:4563
 7e418734 ???
 7e418816 ???
 7e41d17f ???
 7e41b3f9 ???
        Hit [m] for more or any other key to stop


June 05, 2008
Simen, thanks for reporting this

What is the best way for me to reproduce it?

Did you build/use the dwt as a static lib? Build with what options? Or did you build with dwt just added to the include path?

dsss build test.d -debug -full

Can I use an existing example? can it be reproduces programatically?
June 06, 2008
"Frank Benoit" <keinfarbton@googlemail.com> wrote in message news:g2947u$1hoa$1@digitalmars.com...
> Simen, thanks for reporting this
>
> What is the best way for me to reproduce it?
>
> Did you build/use the dwt as a static lib? Build with what options? Or did you build with dwt just added to the include path?
>
> dsss build test.d -debug -full
>
> Can I use an existing example? can it be reproduces programatically?

No static lib. Built with -full -g -debug. I'll now try to use it as a static lib instead to see if that helps.

I catch MenuDetect in a tree, and call a function that removes the old menu and constructs a new one. Quite simple stuff.

I haven't found a way to reproduce it unfortunaly. It works at least 99% of the time, and I cant see any logic in the crashes. It could be a very rare combination of some sort, but I'll add more debugging info in the upcoming weeks, and perhaps then I can find out how it happens.

Sorry I cant be of much help. I have only just begun looking at dwt.


Top | Discussion index | About this forum | D home