Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Community » Newbie corner » [SOLVED] ERROR: Not in table (destructor clobbered?) (Facing this exception, and the dtor doesn't get called)
[SOLVED] ERROR: Not in table (destructor clobbered?) [message #52778] Sat, 23 November 2019 22:47 Go to previous message
xrysf03 is currently offline  xrysf03
Messages: 43
Registered: November 2018
Location: CZ
Member
Dear everyone,

while tweaking my toy app in U++, I've come across an interesting error message.
At runtime, my app doesn't crash outright, but throws an exception saying
iqbal
ERROR: Not in table: ~iqbal() called

...and the program keeps working! Screenshot included.
"iqbal" is the name of a particular class in my project (an I+Q imbalance correction thing).
So far I have created a handful of non-visual classes, and never had a problem with the "system".

The error message is pretty informative: it says what class has thrown the error and what function was supposed to get called (the destructor). It happens when I say "delete iq", where iq is an iqbal* (pointer). And the destructor does *not* get called - if I insert a PromptOK() or some such in the dtor, I don't get the message.

Do I understand correctly, that U++ knows the method name (symbol) but somehow cannot find the function in the late-binding virtual function table? BTW the method is not even virtual and there's no inheritance in the game, the "class iqbal" is pretty basic / self-sufficient.

I'm wondering if this is a result of me writing some unallocated memory or iterating past the end of a static array. It would not be the first time on this project Wink
I've tried moving the "delete" (destructor call) just after the object is instantiated with a "new", literally on the next line of code. And it throws the exception.
There's no pointer-based memory access inbetween the "new" and the "delete" - yet the exception occurs, always. Means to me that I've messed up someplace earlier, and have caused a "rift in the matrix" Wink
I merely feel like it's time I asked if this is perhaps some other problem, if the message maybe points to some specific goofup. Anything that could help me narrow down the problem. Otherwise my next step would be, to try the instantiation+destruction right at the start of my program, before all the dynamic buffer allocations and accesses start to happen...

BTW this is still U++ 12610 nigthly (=oldish) with Mingw64 in "Release" mode.

Any ideas are welcome Smile

Frank

[Updated on: Sun, 24 November 2019 23:24]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: [SOLVED] Do Value can store anonymous function ?
Next Topic: [solved] Register a callback on "when window resized" ?
Goto Forum:
  


Current Time: Thu Apr 18 22:25:35 CEST 2024

Total time taken to generate the page: 0.02885 seconds