loading save segfault #786

Closed
opened 2025-08-09 21:37:41 +00:00 by NQNStudios · 3 comments
NQNStudios commented 2025-08-09 21:37:41 +00:00 (Migrated from github.com)

Loading this save results in a segfault on Mac:

1.exg.zip

Stack trace
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Blades of Exile [28506]
Path:                  /Users/USER/*/Blades of Exile.app/Contents/MacOS/Blades of Exile
Identifier:            com.spidweb.bladesofexile
Version:               2.0b1
Code Type:             ARM-64 (Native)
Parent Process:        Exited process [28505]
Responsible:           Terminal [1428]
User ID:               501

Date/Time:             2025-08-09 16:33:00.9761 -0500
OS Version:            macOS 15.6 (24G84)
Report Version:        12
Anonymous UUID:        CFC2B5CB-C206-CEBB-5DC2-D34A30F53B64

Sleep/Wake UUID:       F0361291-5DED-43DE-8D0C-2DB87A7A3439

Time Awake Since Boot: 540000 seconds
Time Since Wake:       27195 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x6e6f706165772f58 -> 0x0000706165772f58 (possible pointer authentication failure)
Exception Codes:       0x0000000000000001, 0x6e6f706165772f58

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [28506]

VM Region Info: 0x706165772f58 is not in any region.  
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      UNUSED SPACE AT END

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_platform.dylib      	       0x19acbd464 _platform_memmove + 420
1   Blades of Exile               	       0x102118b60 void std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>::construct[abi:ne190102]<std::__1::pair<eMonstAbil const, uAbility>, std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility>*, std::__1::pair<eMonstAbil const, uAbility> const&) + 40 (allocator.h:165)
2   Blades of Exile               	       0x102118938 void std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>>::construct[abi:ne190102]<std::__1::pair<eMonstAbil const, uAbility>, std::__1::pair<eMonstAbil const, uAbility> const&, 0>(std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>&, std::__1::pair<eMonstAbil const, uAbility>*, std::__1::pair<eMonstAbil const, uAbility> const&) + 40 (allocator_traits.h:319)
3   Blades of Exile               	       0x10211873c std::__1::unique_ptr<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>>> std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__construct_node<std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility> const&) + 156 (__tree:1813)
4   Blades of Exile               	       0x1021185f4 std::__1::__tree_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long> std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__emplace_multi<std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility> const&) + 44 (__tree:1855)
5   Blades of Exile               	       0x102117e58 std::__1::__tree_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long> std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__insert_multi[abi:ne190102]<std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility> const&) + 32 (__tree:1133)
6   Blades of Exile               	       0x102117ad4 void std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__assign_multi<std::__1::__tree_const_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long>>(std::__1::__tree_const_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long>, std::__1::__tree_const_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long>) + 320 (__tree:1434)
7   Blades of Exile               	       0x102117904 std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::operator=(std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>> const&) + 116 (__tree:1391)
8   Blades of Exile               	       0x10211784c std::__1::map<eMonstAbil, uAbility, std::__1::less<eMonstAbil>, std::__1::allocator<std::__1::pair<eMonstAbil const, uAbility>>>::operator=[abi:ne190102](std::__1::map<eMonstAbil, uAbility, std::__1::less<eMonstAbil>, std::__1::allocator<std::__1::pair<eMonstAbil const, uAbility>>> const&) + 36 (map:1077)
9   Blades of Exile               	       0x102113c30 cMonster::operator=(cMonster const&) + 100 (monster.hpp:43)
10  Blades of Exile               	       0x10217d020 finish_load_party() + 328 (boe.fileio.cpp:81)
11  Blades of Exile               	       0x10209f8b8 do_load() + 404 (boe.actions.cpp:3164)
12  Blades of Exile               	       0x10229423c handle_startup_button_click(eStartButton, eKeyMod) + 752 (boe.startup.cpp:63)
13  Blades of Exile               	       0x1022946a0 handle_startup_press(location) + 204 (boe.startup.cpp:124)
14  Blades of Exile               	       0x1021dde40 Mouse_Pressed(sf::Event const&, cFramerateLimiter&) + 72 (boe.main.cpp:1569)
15  Blades of Exile               	       0x1021dc35c handle_one_event(sf::Event const&, cFramerateLimiter&) + 540 (boe.main.cpp:1393)
16  Blades of Exile               	       0x1021dacc4 handle_events() + 748 (boe.main.cpp:1284)
17  Blades of Exile               	       0x1021d9780 main + 736 (boe.main.cpp:297)
18  dyld                          	       0x19a8e2b98 start + 6076
Loading this save results in a segfault on Mac: [1.exg.zip](https://github.com/user-attachments/files/21702378/1.exg.zip) <details> <summary>Stack trace</summary> ``` ------------------------------------- Translated Report (Full Report Below) ------------------------------------- Process: Blades of Exile [28506] Path: /Users/USER/*/Blades of Exile.app/Contents/MacOS/Blades of Exile Identifier: com.spidweb.bladesofexile Version: 2.0b1 Code Type: ARM-64 (Native) Parent Process: Exited process [28505] Responsible: Terminal [1428] User ID: 501 Date/Time: 2025-08-09 16:33:00.9761 -0500 OS Version: macOS 15.6 (24G84) Report Version: 12 Anonymous UUID: CFC2B5CB-C206-CEBB-5DC2-D34A30F53B64 Sleep/Wake UUID: F0361291-5DED-43DE-8D0C-2DB87A7A3439 Time Awake Since Boot: 540000 seconds Time Since Wake: 27195 seconds System Integrity Protection: enabled Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x6e6f706165772f58 -> 0x0000706165772f58 (possible pointer authentication failure) Exception Codes: 0x0000000000000001, 0x6e6f706165772f58 Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11 Terminating Process: exc handler [28506] VM Region Info: 0x706165772f58 is not in any region. REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL UNUSED SPACE AT START ---> UNUSED SPACE AT END Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_platform.dylib 0x19acbd464 _platform_memmove + 420 1 Blades of Exile 0x102118b60 void std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>::construct[abi:ne190102]<std::__1::pair<eMonstAbil const, uAbility>, std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility>*, std::__1::pair<eMonstAbil const, uAbility> const&) + 40 (allocator.h:165) 2 Blades of Exile 0x102118938 void std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>>::construct[abi:ne190102]<std::__1::pair<eMonstAbil const, uAbility>, std::__1::pair<eMonstAbil const, uAbility> const&, 0>(std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>&, std::__1::pair<eMonstAbil const, uAbility>*, std::__1::pair<eMonstAbil const, uAbility> const&) + 40 (allocator_traits.h:319) 3 Blades of Exile 0x10211873c std::__1::unique_ptr<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>>>> std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__construct_node<std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility> const&) + 156 (__tree:1813) 4 Blades of Exile 0x1021185f4 std::__1::__tree_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long> std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__emplace_multi<std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility> const&) + 44 (__tree:1855) 5 Blades of Exile 0x102117e58 std::__1::__tree_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long> std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__insert_multi[abi:ne190102]<std::__1::pair<eMonstAbil const, uAbility> const&>(std::__1::pair<eMonstAbil const, uAbility> const&) + 32 (__tree:1133) 6 Blades of Exile 0x102117ad4 void std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::__assign_multi<std::__1::__tree_const_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long>>(std::__1::__tree_const_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long>, std::__1::__tree_const_iterator<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__tree_node<std::__1::__value_type<eMonstAbil, uAbility>, void*>*, long>) + 320 (__tree:1434) 7 Blades of Exile 0x102117904 std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>>::operator=(std::__1::__tree<std::__1::__value_type<eMonstAbil, uAbility>, std::__1::__map_value_compare<eMonstAbil, std::__1::__value_type<eMonstAbil, uAbility>, std::__1::less<eMonstAbil>, true>, std::__1::allocator<std::__1::__value_type<eMonstAbil, uAbility>>> const&) + 116 (__tree:1391) 8 Blades of Exile 0x10211784c std::__1::map<eMonstAbil, uAbility, std::__1::less<eMonstAbil>, std::__1::allocator<std::__1::pair<eMonstAbil const, uAbility>>>::operator=[abi:ne190102](std::__1::map<eMonstAbil, uAbility, std::__1::less<eMonstAbil>, std::__1::allocator<std::__1::pair<eMonstAbil const, uAbility>>> const&) + 36 (map:1077) 9 Blades of Exile 0x102113c30 cMonster::operator=(cMonster const&) + 100 (monster.hpp:43) 10 Blades of Exile 0x10217d020 finish_load_party() + 328 (boe.fileio.cpp:81) 11 Blades of Exile 0x10209f8b8 do_load() + 404 (boe.actions.cpp:3164) 12 Blades of Exile 0x10229423c handle_startup_button_click(eStartButton, eKeyMod) + 752 (boe.startup.cpp:63) 13 Blades of Exile 0x1022946a0 handle_startup_press(location) + 204 (boe.startup.cpp:124) 14 Blades of Exile 0x1021dde40 Mouse_Pressed(sf::Event const&, cFramerateLimiter&) + 72 (boe.main.cpp:1569) 15 Blades of Exile 0x1021dc35c handle_one_event(sf::Event const&, cFramerateLimiter&) + 540 (boe.main.cpp:1393) 16 Blades of Exile 0x1021dacc4 handle_events() + 748 (boe.main.cpp:1284) 17 Blades of Exile 0x1021d9780 main + 736 (boe.main.cpp:297) 18 dyld 0x19a8e2b98 start + 6076 ``` </details>
NQNStudios commented 2025-08-09 21:54:51 +00:00 (Migrated from github.com)

Oh... I yanked my party out of its scenario using a debug action, then saved in a built-in scenario and it can't find a saved creature's record. I think that's what's happening. I wonder if this state can happen without using a debug action.

Oh... I yanked my party out of its scenario using a debug action, then saved in a built-in scenario and it can't find a saved creature's record. I think that's what's happening. I wonder if this state can happen without using a debug action.
NQNStudios commented 2025-08-18 22:02:05 +00:00 (Migrated from github.com)

Ah, this is happening with the party I actually completed Nephil's Gambit with. So saved creatures from legacy scenarios are broken.

Ah, this is happening with the party I actually completed Nephil's Gambit with. So saved creatures from legacy scenarios are broken.
NQNStudios commented 2025-08-18 22:03:09 +00:00 (Migrated from github.com)

Or, wait... they're just not cleared? Why are there saved creatures...

Or, wait... they're just not cleared? Why are there saved creatures...
Sign in to join this conversation.
No description provided.