Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

terminate called without an active exception #112

Closed
shirishag75 opened this Issue · 13 comments

2 participants

shirish Yohann Ferreira
shirish

Hi all,
I entered the cave and had clicked the last standing man puzzle and bromann says..... and then the game crashes. I get/got this on the CLI :-

~/games/valyriatear$ ./src/valyriatear
pure virtual method called
terminate called without an active exception
Aborted (core dumped)

I am sending a copy of the save file to Yohann.

If I run the game under gdb then no issues there but otherwise it crashes there.

This is at this commit :-

commit 24c335e
Author: Yohann Ferreira
Date: Tue Jan 8 18:13:47 2013 +0100

Prevented some overlapping by moving the stats + textboxes a bot to the right.
Yohann Ferreira
Owner

I've just tested on win7 with the installer one, and it's working fine. I'll test on linux in a few minutes.

Yohann Ferreira
Owner

Crash confirmed on a specific case I'm trying to decipher here. Thanks for the report Shirish, it's nastiest one you've ever found so far. ;)

shirish

my pleasure :)

shirish

@Bertram25 any luck so far. This one is a show-stopper as far as I'm concerned for the release. I got bitten by it again. Right now running the game under gdb in the hopes of getting some more info. for us.

Update: No issue under gdb (it behaves good under gdb) but not otherwise. Any luck on this ?

Yohann Ferreira
Owner

As for me, it doesn't happen when running the game (normally, not under gdb) from the cave save point.
It sometimes crash (not common) when coming from a longer trip, so it's quite hard to reproduce, unfortunately.

I'll keep using gdb to try and get the segfault point. Also, I'll check whether we've got the correct flags to get core dumps. Once I'm sure of that, I'll ask you to run valyria from a terminal and type this before running the game:
ulimit -c unlimited

This will permit to get a core dump when crashing that I'll be able to import into gdb. More on this later. :)

shirish

sure lemme know what I need to do and will do it. Looking forward to it.

A little bit info. about ulimit -c unlimited would be nice as in what it does and does the effect remain for the app. only or what.

Yohann Ferreira
Owner

Ok, hopefully I found something interesting and I am working on the fix:
The 'ReloadSprite(spriteref, name) lua function sounds like being the culprit, along with the fact that I used kalya_sprite = nil instead of = {} in the corresponding map file.

I've locally turned this function back to a c++ one permitting others simplifications. More tonight.

Yohann Ferreira
Owner

A little bit info. about ulimit -c unlimited would be nice as in what it does and does the effect remain for the app. only or what.

Roughly, this removes any limit to the coredump file size created by the apps running in the active session. as long as you type that in a terminal session before running the game, it will remain until you close that session.

Don't ask me to explain about 'rm -rf /' ;P

Yohann Ferreira Bertram25 referenced this issue from a commit
Yohann Ferreira Turned the ReloadSprite() function back to a c++ one.
Linked to #112:
As shirish reported having 'virtual function called' based segfault,
and as the bug happens within the function that reload the sprite,
I've suspected the map sprite reference badly taken has a map object
one, or something similar.

If it's not the case, at least this will be a cause less to see that
bug, or it will throw the error from within a c++ function, which
is more talkative with gdb.

A more general global variable hunt is also to be made also to
possibly get rid of that bug as well as the others.
c4eaf0d
Yohann Ferreira
Owner

Ok, a lot of work has happened already, with the hope of fixing this.
could you test again, @shirishag75?

shirish

Hi all,
@Bertram25 I probably won't have time tomorrow and sleepy now. The best I can promise you for testing is somewhere in the middle of next week or something. If other things on your TODO are done, feel free to do an RC-1/RC-2 or final release now. I don't wanna be a cause for changing the release date of HEIR.

Yohann Ferreira
Owner

Take the time needed. So far, you're the one reproducing the issue the most easily, at least to my knowledge.

Yohann Ferreira Bertram25 referenced this issue from a commit
Yohann Ferreira Turned the ReloadSprite() function back to a c++ one.
Linked to #112:
As shirish reported having 'virtual function called' based segfault,
and as the bug happens within the function that reload the sprite,
I've suspected the map sprite reference badly taken has a map object
one, or something similar.

If it's not the case, at least this will be a cause less to see that
bug, or it will throw the error from within a c++ function, which
is more talkative with gdb.

A more general global variable hunt is also to be made also to
possibly get rid of that bug as well as the others.
410391c
shirish

I think we can close it. I played it and didn't find the issue at least till what I played (which is till the end of HEIR)

Yohann Ferreira
Owner

Thanks for the through testing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.