Attnam / ivan

Iter Vehemens ad Necem - a continuation of the graphical roguelike by members of http://attnam.com
GNU General Public License v2.0
296 stars 42 forks source link

Crash on continue #619

Open RoseSnowflake opened 3 years ago

RoseSnowflake commented 3 years ago

Im on Linux, and playing on the latest version. Whenever i choose continue in the menu the whole game hard crashes, and idk why. Its especially irritating cuz my latest run just ended in a crash because i tried tearing down a web in the same square as a carniverous plant, and now im in a situation where i can either make a new game, or not play cuz i can't continue at an autosave because of this issue. any help would be appreciated.

if its any help, this is the terminal output when i launch and immediately hit continue.

snowjunkie@snowjunkie-Inspiron-24-5459:~/ivan/ivan/Main$ ./ivan terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted ./ivan(_ZN18globalerrorhandler22DumpStackTraceToStdErrEi+0x34)[0x56495770e1a4] ./ivan(_Z12CrashHandleri+0x15)[0x56495769f38c] /lib/x86_64-linux-gnu/libc.so.6(+0x3efd0)[0x7f28ef97ffd0] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f28ef97ff47] /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f28ef9818b1] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x9a257)[0x7f28f0382257] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa5606)[0x7f28f038d606] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa5671)[0x7f28f038d671] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa5905)[0x7f28f038d905] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x99e9a)[0x7f28f0381e9a] ./ivan(_ZN7fearrayI13contentscriptI4itemEE8AllocateEj+0x31)[0x5649575a6ff5] ./ivan(_ZrsI13contentscriptI4itemEER9inputfileS4_R7fearrayIT_E+0x43)[0x5649576c4a90] ./ivan(_ZN12scriptmemberI7fearrayI13contentscriptI4itemEEE4LoadER9inputfile+0x5a)[0x5649576bd30e] ./ivan(_ZN6script11LoadDataMapERKSt3mapIPKcMS_16scriptmemberbase12charcomparerSaISt4pairIKS2_S4_EEER9inputfile+0xad)[0x5649576b6733] ./ivan(_ZN6script4LoadER9inputfile+0x49)[0x5649576bb283] ./ivan(_ZrsR9inputfileR6script+0x2e)[0x5649576bb33e] ./ivan(_ZN12scriptmemberI12squarescriptE4LoadER9inputfile+0x5f)[0x5649576bcc1b] ./ivan(_ZN6script11LoadDataMapERKSt3mapIPKcMS_16scriptmemberbase12charcomparerSaISt4pairIKS2_S4_EEER9inputfile+0xad)[0x5649576b6733] ./ivan(_ZN6script4LoadER9inputfile+0x49)[0x5649576bb283] ./ivan(_ZN11levelscript4LoadER9inputfile+0x32)[0x5649576b97f4] ./ivan(_ZrsR9inputfileR6script+0x2e)[0x5649576bb33e] ./ivan(_ZN12scriptmemberI11levelscriptE4LoadER9inputfile+0x5f)[0x5649576bcfab] ./ivan(_ZN6script11LoadDataMapERKSt3mapIPKcMS_16scriptmemberbase12charcomparerSaISt4pairIKS2_S4_EEER9inputfile+0xad)[0x5649576b6733] ./ivan(_ZN6script4LoadER9inputfile+0x49)[0x5649576bb283] ./ivan(_ZN13dungeonscript4LoadER9inputfile+0x32)[0x5649576b9f92] ./ivan(_ZrsR9inputfileR6script+0x2e)[0x5649576bb33e] ./ivan(_ZrsIi13dungeonscriptER9inputfileS2_RSt3mapIT_T0_St4lessIS4_ESaISt4pairIKS4_S5_EEE+0x177)[0x5649576c42c6] ./ivan(_ZN10gamescript4LoadER9inputfile+0x50)[0x5649576bad34] ./ivan(_ZrsR9inputfileRP10gamescript+0x51)[0x5649576badbc] ./ivan(_Z14SkipGameScriptP9inputfile+0x36)[0x56495769f3cc] ./ivan(_ZN8iosystem12ContinueMenuEiiRK8festringib+0xd62)[0x56495771284a] ./ivan(main+0x5dc)[0x56495769f9bf] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f28ef962b97] ./ivan(_start+0x2a)[0x564957488c8a]

AquariusPower commented 3 years ago

I guess, there may have older backup files in the save directory, as I remember they end with .bkp and .tmp May be, manually restoring them, by renaming them, could let you play from a previous moment. Please make a copy of all of them first elsewhere.

a crash because i tried tearing down a web in the same square as a carniverous plant

I guess you where polymorphed into a carnivorous plant right? We used to have that kind of problems before, when tearing down any webs, I thought it was fixed. But, it also may not be related to tearing a web itself, because just after we try to do it, and before the next turn, all NPCs also have their turn to act, and that specific stacktrace (when that crash happened) could point what really happened at that time.

Thx for the stacktrace, btw here it demangled thru c++filt just to help anyone else trying to figure out what happened.

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted
./ivan(globalerrorhandler::DumpStackTraceToStdErr(int)+0x34)[0x56495770e1a4]
./ivan(CrashHandler(int)+0x15)[0x56495769f38c]
/lib/x86_64-linux-gnu/libc.so.6(+0x3efd0)[0x7f28ef97ffd0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f28ef97ff47]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f28ef9818b1]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x9a257)[0x7f28f0382257]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa5606)[0x7f28f038d606]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa5671)[0x7f28f038d671]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xa5905)[0x7f28f038d905]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x99e9a)[0x7f28f0381e9a]
./ivan(fearray<contentscript<item> >::Allocate(unsigned int)+0x31)[0x5649575a6ff5]
./ivan(inputfile& operator>><contentscript<item> >(inputfile&, fearray<contentscript<item> >&)+0x43)[0x5649576c4a90]
./ivan(scriptmember<fearray<contentscript<item> > >::Load(inputfile&)+0x5a)[0x5649576bd30e]
./ivan(script::LoadDataMap(std::map<char const*, scriptmemberbase script::*, charcomparer, std::allocator<std::pair<char const* const, scriptmemberbase script::*> > > const&, inputfile&)+0xad)[0x5649576b6733]
./ivan(script::Load(inputfile&)+0x49)[0x5649576bb283]
./ivan(operator>>(inputfile&, script&)+0x2e)[0x5649576bb33e]
./ivan(scriptmember<squarescript>::Load(inputfile&)+0x5f)[0x5649576bcc1b]
./ivan(script::LoadDataMap(std::map<char const*, scriptmemberbase script::*, charcomparer, std::allocator<std::pair<char const* const, scriptmemberbase script::*> > > const&, inputfile&)+0xad)[0x5649576b6733]
./ivan(script::Load(inputfile&)+0x49)[0x5649576bb283]
./ivan(levelscript::Load(inputfile&)+0x32)[0x5649576b97f4]
./ivan(operator>>(inputfile&, script&)+0x2e)[0x5649576bb33e]
./ivan(scriptmember<levelscript>::Load(inputfile&)+0x5f)[0x5649576bcfab]
./ivan(script::LoadDataMap(std::map<char const*, scriptmemberbase script::*, charcomparer, std::allocator<std::pair<char const* const, scriptmemberbase script::*> > > const&, inputfile&)+0xad)[0x5649576b6733]
./ivan(script::Load(inputfile&)+0x49)[0x5649576bb283]
./ivan(dungeonscript::Load(inputfile&)+0x32)[0x5649576b9f92]
./ivan(operator>>(inputfile&, script&)+0x2e)[0x5649576bb33e]
./ivan(inputfile& operator>><int, dungeonscript>(inputfile&, std::map<int, dungeonscript, std::less<int>, std::allocator<std::pair<int const, dungeonscript> > >&)+0x177)[0x5649576c42c6]
./ivan(gamescript::Load(inputfile&)+0x50)[0x5649576bad34]
./ivan(operator>>(inputfile&, gamescript*&)+0x51)[0x5649576badbc]
./ivan(SkipGameScript(inputfile*)+0x36)[0x56495769f3cc]
./ivan(iosystem::ContinueMenu(int, int, festring const&, int, bool)+0xd62)[0x56495771284a]
./ivan(main+0x5dc)[0x56495769f9bf]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f28ef962b97]
./ivan(_start+0x2a)[0x564957488c8a]

PS.: sorry for taking so much time to read this..