Process 71747 launched: '/Users/Dominus/Code/snapshots/exult/exult' (x86_64) Exult version 1.9.0git Built at: Mar 20 2023 20:52:02 Compile-time options: DEBUG, USE_FMOPL_MIDI, HAVE_ZIP_SUPPORT Compiler: GCC Apple LLVM 14.0.0 (clang-1400.0.29.202) Platform: Mac OS X Unrecognized system path '' in path ''. Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x00000001004fff97 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:721:119 718 ) { 719 #if defined(MACOSX) || defined(__IPHONEOS__) 720 // Can we try from the bundle? -> 721 std::unique_ptr::type, CFDeleter> fileUrl {std::move(CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle()))}; 722 if (fileUrl) { 723 unsigned char buf[MAXPATHLEN]; 724 if (CFURLGetFileSystemRepresentation(fileUrl.get(), true, buf, sizeof(buf))) { Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001004fffc6 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:722:6 719 #if defined(MACOSX) || defined(__IPHONEOS__) 720 // Can we try from the bundle? 721 std::unique_ptr::type, CFDeleter> fileUrl {std::move(CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle()))}; -> 722 if (fileUrl) { 723 unsigned char buf[MAXPATHLEN]; 724 if (CFURLGetFileSystemRepresentation(fileUrl.get(), true, buf, sizeof(buf))) { 725 string path(reinterpret_cast(buf)); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001004fffe6 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:724:48 721 std::unique_ptr::type, CFDeleter> fileUrl {std::move(CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle()))}; 722 if (fileUrl) { 723 unsigned char buf[MAXPATHLEN]; -> 724 if (CFURLGetFileSystemRepresentation(fileUrl.get(), true, buf, sizeof(buf))) { 725 string path(reinterpret_cast(buf)); 726 path += "/data"; 727 add_system_path("", path); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x000000010050002b exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:725:11 722 if (fileUrl) { 723 unsigned char buf[MAXPATHLEN]; 724 if (CFURLGetFileSystemRepresentation(fileUrl.get(), true, buf, sizeof(buf))) { -> 725 string path(reinterpret_cast(buf)); 726 path += "/data"; 727 add_system_path("", path); 728 if (!U7exists(BUNDLE_EXULT_FLX)) Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500035 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:726:9 723 unsigned char buf[MAXPATHLEN]; 724 if (CFURLGetFileSystemRepresentation(fileUrl.get(), true, buf, sizeof(buf))) { 725 string path(reinterpret_cast(buf)); -> 726 path += "/data"; 727 add_system_path("", path); 728 if (!U7exists(BUNDLE_EXULT_FLX)) 729 clear_system_path(""); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x000000010050004d exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:727:20 724 if (CFURLGetFileSystemRepresentation(fileUrl.get(), true, buf, sizeof(buf))) { 725 string path(reinterpret_cast(buf)); 726 path += "/data"; -> 727 add_system_path("", path); 728 if (!U7exists(BUNDLE_EXULT_FLX)) 729 clear_system_path(""); 730 } Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500089 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:728:9 725 string path(reinterpret_cast(buf)); 726 path += "/data"; 727 add_system_path("", path); -> 728 if (!U7exists(BUNDLE_EXULT_FLX)) 729 clear_system_path(""); 730 } 731 } Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500161 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:730:3 727 add_system_path("", path); 728 if (!U7exists(BUNDLE_EXULT_FLX)) 729 clear_system_path(""); -> 730 } 731 } 732 #endif 733 #ifdef __IPHONEOS__ Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500183 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:731:2 728 if (!U7exists(BUNDLE_EXULT_FLX)) 729 clear_system_path(""); 730 } -> 731 } 732 #endif 733 #ifdef __IPHONEOS__ 734 if (is_system_path_defined("")) { Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500188 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:745:18 742 #endif 743 744 // First, try the cfg value: -> 745 add_system_path("", data_path); 746 if (U7exists(EXULT_FLX)) 747 return; 748 Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001005001c4 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:746:6 743 744 // First, try the cfg value: 745 add_system_path("", data_path); -> 746 if (U7exists(EXULT_FLX)) 747 return; 748 749 // Now, try default -- if warranted. Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500220 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:750:6 747 return; 748 749 // Now, try default -- if warranted. -> 750 if (data_path != EXULT_DATADIR) { 751 add_system_path("", EXULT_DATADIR); 752 if (U7exists(EXULT_FLX)) 753 return; Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500324 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:757:18 754 } 755 756 // Try "data" subdirectory for current working directory: -> 757 add_system_path("", "data"); 758 if (U7exists(EXULT_FLX)) 759 return; 760 Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500384 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:758:6 755 756 // Try "data" subdirectory for current working directory: 757 add_system_path("", "data"); -> 758 if (U7exists(EXULT_FLX)) 759 return; 760 761 // Try "data" subdirectory for exe directory: Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001005003b8 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:759:3 756 // Try "data" subdirectory for current working directory: 757 add_system_path("", "data"); 758 if (U7exists(EXULT_FLX)) -> 759 return; 760 761 // Try "data" subdirectory for exe directory: 762 const char *sep = std::strrchr(runpath, '/'); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100500808 exult`setup_data_dir(data_path="/Library/Application Support/Exult/data", runpath="/Users/Dominus/Code/snapshots/exult/exult") at utils.cc:787:1 784 std::cerr << "and the Exult data path is specified in the configuration file." << std::endl; 785 std::cerr << "(See the README file for more information)" << std::endl; 786 exit(-1); -> 787 } 788 789 static string Get_config_dir(const string& home_dir) { 790 #ifdef __IPHONEOS__ Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097936 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:507:2 504 // Setup virtual directories 505 string data_path; 506 config->value("config/disk/data_path", data_path, EXULT_DATADIR); -> 507 setup_data_dir(data_path, runpath); 508 509 const std::string default_music = get_system_path("/music"); 510 config->value("config/disk/music_path", music_path, default_music.c_str()); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x000000010009793b exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:509:52 506 config->value("config/disk/data_path", data_path, EXULT_DATADIR); 507 setup_data_dir(data_path, runpath); 508 -> 509 const std::string default_music = get_system_path("/music"); 510 config->value("config/disk/music_path", music_path, default_music.c_str()); 511 512 add_system_path("", music_path); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097977 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:510:2 507 setup_data_dir(data_path, runpath); 508 509 const std::string default_music = get_system_path("/music"); -> 510 config->value("config/disk/music_path", music_path, default_music.c_str()); 511 512 add_system_path("", music_path); 513 add_system_path("", "static"); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001000979b0 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:512:18 509 const std::string default_music = get_system_path("/music"); 510 config->value("config/disk/music_path", music_path, default_music.c_str()); 511 -> 512 add_system_path("", music_path); 513 add_system_path("", "static"); 514 add_system_path("", "gamedat"); 515 add_system_path("", "patch"); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001000979e9 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:513:18 510 config->value("config/disk/music_path", music_path, default_music.c_str()); 511 512 add_system_path("", music_path); -> 513 add_system_path("", "static"); 514 add_system_path("", "gamedat"); 515 add_system_path("", "patch"); 516 // add_system_path("", "savegame"); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097a49 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:514:18 511 512 add_system_path("", music_path); 513 add_system_path("", "static"); -> 514 add_system_path("", "gamedat"); 515 add_system_path("", "patch"); 516 // add_system_path("", "savegame"); 517 add_system_path("", "."); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097aa9 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:515:18 512 add_system_path("", music_path); 513 add_system_path("", "static"); 514 add_system_path("", "gamedat"); -> 515 add_system_path("", "patch"); 516 // add_system_path("", "savegame"); 517 add_system_path("", "."); 518 add_system_path("", "mods"); Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097b09 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:517:18 514 add_system_path("", "gamedat"); 515 add_system_path("", "patch"); 516 // add_system_path("", "savegame"); -> 517 add_system_path("", "."); 518 add_system_path("", "mods"); 519 520 std::cout << "Exult path settings:" << std::endl; Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097b69 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:518:18 515 add_system_path("", "patch"); 516 // add_system_path("", "savegame"); 517 add_system_path("", "."); -> 518 add_system_path("", "mods"); 519 520 std::cout << "Exult path settings:" << std::endl; 521 #ifdef __IPHONEOS__ Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097bc9 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:520:12 517 add_system_path("", "."); 518 add_system_path("", "mods"); 519 -> 520 std::cout << "Exult path settings:" << std::endl; 521 #ifdef __IPHONEOS__ 522 std::cout << "Bundle : " << get_system_path("") << std::endl; 523 #endif Target 0: (exult) stopped. (lldb) n Exult path settings: Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097c00 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:524:12 521 #ifdef __IPHONEOS__ 522 std::cout << "Bundle : " << get_system_path("") << std::endl; 523 #endif -> 524 std::cout << "Data : " << get_system_path("") << std::endl; 525 std::cout << "Digital music : " << get_system_path("") << std::endl; 526 std::cout << std::endl; 527 Target 0: (exult) stopped. (lldb) n Data : data Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097c9e exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:525:12 522 std::cout << "Bundle : " << get_system_path("") << std::endl; 523 #endif 524 std::cout << "Data : " << get_system_path("") << std::endl; -> 525 std::cout << "Digital music : " << get_system_path("") << std::endl; 526 std::cout << std::endl; 527 528 // Check CRCs of our .flx files Target 0: (exult) stopped. (lldb) n Digital music : data/music Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097d3c exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:526:12 523 #endif 524 std::cout << "Data : " << get_system_path("") << std::endl; 525 std::cout << "Digital music : " << get_system_path("") << std::endl; -> 526 std::cout << std::endl; 527 528 // Check CRCs of our .flx files 529 bool crc_ok = true; Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097d54 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:529:7 526 std::cout << std::endl; 527 528 // Check CRCs of our .flx files -> 529 bool crc_ok = true; 530 const char *flexname = BUNDLE_CHECK(BUNDLE_EXULT_FLX, EXULT_FLX); 531 const uint32 crc = crc32(flexname); 532 if (crc != EXULT_FLX_CRC32) { Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097d5b exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:530:25 527 528 // Check CRCs of our .flx files 529 bool crc_ok = true; -> 530 const char *flexname = BUNDLE_CHECK(BUNDLE_EXULT_FLX, EXULT_FLX); 531 const uint32 crc = crc32(flexname); 532 if (crc != EXULT_FLX_CRC32) { 533 crc_ok = false; Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097e0a exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:531:27 528 // Check CRCs of our .flx files 529 bool crc_ok = true; 530 const char *flexname = BUNDLE_CHECK(BUNDLE_EXULT_FLX, EXULT_FLX); -> 531 const uint32 crc = crc32(flexname); 532 if (crc != EXULT_FLX_CRC32) { 533 crc_ok = false; 534 cerr << "exult.flx has a wrong checksum!" << endl; Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100097e2d exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:532:10 529 bool crc_ok = true; 530 const char *flexname = BUNDLE_CHECK(BUNDLE_EXULT_FLX, EXULT_FLX); 531 const uint32 crc = crc32(flexname); -> 532 if (crc != EXULT_FLX_CRC32) { 533 crc_ok = false; 534 cerr << "exult.flx has a wrong checksum!" << endl; 535 } Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x000000010009808f exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:536:13 533 crc_ok = false; 534 cerr << "exult.flx has a wrong checksum!" << endl; 535 } -> 536 flexname = BUNDLE_CHECK(BUNDLE_EXULT_BG_FLX, EXULT_BG_FLX); 537 if (crc32(flexname) != EXULT_BG_FLX_CRC32) { 538 crc_ok = false; 539 cerr << "exult_bg.flx has a wrong checksum!" << endl; Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100098130 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:537:12 534 cerr << "exult.flx has a wrong checksum!" << endl; 535 } 536 flexname = BUNDLE_CHECK(BUNDLE_EXULT_BG_FLX, EXULT_BG_FLX); -> 537 if (crc32(flexname) != EXULT_BG_FLX_CRC32) { 538 crc_ok = false; 539 cerr << "exult_bg.flx has a wrong checksum!" << endl; 540 } Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001000981b8 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:541:13 538 crc_ok = false; 539 cerr << "exult_bg.flx has a wrong checksum!" << endl; 540 } -> 541 flexname = BUNDLE_CHECK(BUNDLE_EXULT_SI_FLX, EXULT_SI_FLX); 542 if (crc32(flexname) != EXULT_SI_FLX_CRC32) { 543 crc_ok = false; 544 cerr << "exult_si.flx has a wrong checksum!" << endl; Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100098259 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:542:12 539 cerr << "exult_bg.flx has a wrong checksum!" << endl; 540 } 541 flexname = BUNDLE_CHECK(BUNDLE_EXULT_SI_FLX, EXULT_SI_FLX); -> 542 if (crc32(flexname) != EXULT_SI_FLX_CRC32) { 543 crc_ok = false; 544 cerr << "exult_si.flx has a wrong checksum!" << endl; 545 } Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x00000001000982e1 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:548:2 545 } 546 547 bool config_ignore_crc; -> 548 config->value("config/disk/no_crc", config_ignore_crc); 549 ignore_crc |= config_ignore_crc; 550 551 if (!ignore_crc && !crc_ok) { Target 0: (exult) stopped. (lldb) n Process 71747 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = step over frame #0: 0x0000000100098302 exult`exult_main(runpath="/Users/Dominus/Code/snapshots/exult/exult") at exult.cc:549:16 546 547 bool config_ignore_crc; 548 config->value("config/disk/no_crc", config_ignore_crc); -> 549 ignore_crc |= config_ignore_crc; 550 551 if (!ignore_crc && !crc_ok) { 552 cerr << "This usually means the file(s) mentioned above are " Target 0: (exult) stopped. (lldb)