Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: How do I decipher the new crashlogs  (Read 549 times)

Relicspread

  • Bay Watcher
    • View Profile
How do I decipher the new crashlogs
« on: September 16, 2023, 04:48:36 am »

I have been stuck with a save game corruption problem since July (the game crashes on loading saves, usually during "load world information"). It is possible this is due to the mods I'm using, but there was really no way of telling until the 50.10 beta introduced crashlogs. Thing is, the logs are complete nonsense to me.

I'll just copy over the text from my most recent log, they all look the same, if anyone wants to help me:

0> Dwarf_Fortress!std::_Init_locks::operator=+0x7F2706
1> Dwarf_Fortress!std::_Init_locks::operator=+0x7F2879
2> KERNELBASE!UnhandledExceptionFilter+0x1EC
3> ntdll!RtlMoveMemory+0x2BBD
4> ntdll!_C_specific_handler+0x97
5> ntdll!_chkstk+0x12F
6> ntdll!RtlFindCharInUnicodeString+0xA96
7> ntdll!KiUserExceptionDispatcher+0x2E
8> Dwarf_Fortress!std::_Init_locks::operator=+0x8D5F84
9> Dwarf_Fortress!std::_Init_locks::operator=+0x82B25A
10> Dwarf_Fortress!std::_Init_locks::operator=+0x82AB79
11> Dwarf_Fortress!std::_Init_locks::operator=+0x829129
12> Dwarf_Fortress!std::_Init_locks::operator=+0x1063576
13> Dwarf_Fortress!std::_Init_locks::operator=+0x5C415D
14> Dwarf_Fortress!std::_Init_locks::operator=+0x8F9C46
15> Dwarf_Fortress!std::_Init_locks::operator=+0x626174
16> Dwarf_Fortress!std::_Init_locks::operator=+0x627529
17> SDL2!SDL_DYNAPI_entry+0x799D7
18> SDL2!SDL_DYNAPI_entry+0x12EEDE
19> ucrtbase!recalloc+0xA3
20> KERNEL32!BaseThreadInitThunk+0x1D
21> ntdll!RtlUserThreadStart+0x28
Logged

0x517A5D

  • Bay Watcher
  • Hex Editor‬‬
    • View Profile
Re: How do I decipher the new crashlogs
« Reply #1 on: September 16, 2023, 03:02:32 pm »

So this is not going to be very helpful, sorry.

These nest from the bottom up.  The very bottom is the kernel calls that start the program, then the program's nested functions, then the actual problem at the top.

We start by skimming down for the last mention of ntdll or kernel, which is likely where things started going wrong.

That's line 7, and it mentions exceptions.  So in line 8 (or possibly line 9), something threw an exception that didn't get caught and handled, leading to termination.

You might look at line 8 and say "Ahah!  It's a locking problem!"  Nope, that's a red herring.

See that +0x8D5F84 ?  That's the offset from std::_Init_locks::operator=.  The problematic code is nine million bytes after the specified location.

So why does it talk about std::_Init_locks::operator= ?  Because that's the closest symbol in the debugging metadata.

Dwarf Fortress is distributed without debugging symbols, so there's really not much we can do to diagnose this.

Just report it as a bug, including this log.  If you have a crashdump, keep it and mention that in your report.  (Keep the exact savegame and the crashdump together; it wouldn't be a terrible idea to zip up the entire game directory.)
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: How do I decipher the new crashlogs
« Reply #2 on: September 20, 2023, 06:03:26 am »

You don't decipher them, you just post them. Thank you for posting it.

EDIT: Please post the save too.
« Last Edit: September 20, 2023, 06:51:17 pm by Putnam »
Logged

Relicspread

  • Bay Watcher
    • View Profile
Re: How do I decipher the new crashlogs
« Reply #3 on: September 28, 2023, 06:14:40 am »

Ok thanks, unfortunately I deleted the save. Reinstalling the game seems to have fixed it. I also deactivated steam cloud sync which I apparently hadn't done.
Logged