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