Now, this isn't the first heap corruption on exit I've had, but it's the first I'm completely dumbfounded about and can't figure out where it comes from.
Here's the deal:
All vessels of the module causing the corruption save state without trouble. The crash happens after all of them have been executed.
The crash happens, however, before any of the vessels destructors are called. What comes in between there that could cause such a thing? I'm at a serious loss on where to start looking.
the output window has this to say, but it only really states what I already know:
I don't quite get what the second line is about and why pressing F12 could cause such a thing, but I'm not pressing it anyways. It might give a hint to someone about what's going on, or it might not.
The crash started to appear after I've made some changes. I tried to undo those changes to backtrack when the trouble started, but even when none of the new functions were called ever during the simulation, it still persisted. Also, those changes didn't really do much memor related. There was a new vector, but no pointers. I'm somewhat confused here. It might help already if I knew what else gets called between savestate and destructor, although I don't think there is anything vessel related?
The crash is also not 100% consinstent (only about 99%). In case it doesn't happen, the next scenario I load will crash on startup (if I don't close the launchpad, of course), which makes sense if there was a corruption on exit that didn't cause a crash.
It doesn't seem to matter in a release build, but it makes me somewhat nervous none the less.
Here's the deal:
All vessels of the module causing the corruption save state without trouble. The crash happens after all of them have been executed.
The crash happens, however, before any of the vessels destructors are called. What comes in between there that could cause such a thing? I'm at a serious loss on where to start looking.
the output window has this to say, but it only really states what I already know:
Code:
HEAP[orbiter.exe]: Heap block at 0AD67FC0 modified at 0AD8E9F8 past requested size of 26a30
This may also be due to the user pressing F12 while orbiter.exe has focus.
I don't quite get what the second line is about and why pressing F12 could cause such a thing, but I'm not pressing it anyways. It might give a hint to someone about what's going on, or it might not.
The crash started to appear after I've made some changes. I tried to undo those changes to backtrack when the trouble started, but even when none of the new functions were called ever during the simulation, it still persisted. Also, those changes didn't really do much memor related. There was a new vector, but no pointers. I'm somewhat confused here. It might help already if I knew what else gets called between savestate and destructor, although I don't think there is anything vessel related?
The crash is also not 100% consinstent (only about 99%). In case it doesn't happen, the next scenario I load will crash on startup (if I don't close the launchpad, of course), which makes sense if there was a corruption on exit that didn't cause a crash.
It doesn't seem to matter in a release build, but it makes me somewhat nervous none the less.
Last edited: