0xC0000005: 0x0000000000000000 access violation...
Robert M. Münch
robert.muench at saphirion.com
Sun Jul 1 09:05:56 UTC 2018
This one look nasty...
I get an access violation crash after some time. The crash is
reproducible in that it always happens after some time while executing
the same code sequence (meaning the same function call chain).
The debugger kicks in with a call stack, but it looks strange to me:
0000000000000000() Unbekannt
> reactive-gui.exe!app.mouseMove.__lambda3(app.box * b, bool a) Zeile
875 reactive-gui.exe!app.mouseMove.dispatchHandler!((a, b) =>
a.mouseMove_downward(b), (a, b) =>
a.mouseMove_upward(b)).dispatchHandler(app.winMsg this, app.osStream *
s) Zeile 947 reactive-gui.exe!app.mouseMove(app.winMsg s, app.osStream
* wm) Zeile 875
That's line 875: a is an object and b a bool. So, I'm giving the
memember function to call by the handler
dispatchHandler!((a,b) => a.mouseMove_downward(b), (a,b) =>
a.mouseMove_upward(b))(wm,s);
That's the signature of dispatchHandler:
void dispatchHandler(alias funcDownward, alias funcUpward)(winMsg wm,
osStream s) {
And the line the debugger kick in is: node_box is valid
if(funcDownward(node_box, false))
updateScreen = true;
In the variable inspect window there is nothing unnormal for the
variables I use, up to one thing. I see a
this 0x0000000000000000
So, why do I see a "this" at all? Is this because the code gets called
via a lambda? How can such a situation happen?
--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster
More information about the Digitalmars-d-learn
mailing list