On Sun, Sep 10, 2023 at 01:43:58PM +0200, Christian Weisgerber wrote: > Lucas Raab: > > > > It would be interesting to figure out where that crash is coming > > > from. Is this a problem in devilutionx proper? Or library code > > > it links against? > > > > I'm assuming there's no Easy Button(tm) to identify those and that'll > > require > > stepping through each dependent library to determine? :) > > I would assume a backtrace from a core dump would allow identifying > the library, as a first step. Once we know that a library has a > BTI problem, somebody can dig there. > > -- > Christian "naddy" Weisgerber na...@mips.inka.de
Thanks, naddy. bentley@ also helped get me going with debug builds. Which leads to my next question...I've built devilutionx with DEBUG_PACKAGES and that initially gets me to: Process 41444 stopped * thread #1, stop reason = signal SIGILL frame #0: 0x0000000e2abf7000 -> 0xe2abf7000: stp d15, d14, [sp, #-0xa0]! 0xe2abf7004: sub x9, sp, #0x40 ; =0x40 0xe2abf7008: stp d13, d12, [sp, #0x10] 0xe2abf700c: stp d11, d10, [sp, #0x20] (lldb) bt * thread #1, stop reason = signal SIGILL * frame #0: 0x0000000e2abf7000 frame #1: 0x0000000ebecbab34 frame #2: 0x0000000ebecd7e7c frame #3: 0x0000000ebecb8ea0 frame #4: 0x0000000ebecb8a50 frame #5: 0x0000000ebecb89c0 frame #6: 0x0000000ebf15ac08 frame #7: 0x0000000ebe9fbb3c frame #8: 0x0000000e7c612cc4 libSDL2.so.0.14`GL_RunCommandQueue at SDL_render_gl.c:1372:17 frame #9: 0x0000000e7c60ccb4 libSDL2.so.0.14`SDL_RenderPresent_REAL at SDL_render.c:249:14 frame #10: 0x0000000a0fc1e5b4 devilutionx`devilution::RenderPresent() at dx.cpp:247:3 frame #11: 0x0000000a0fbf3554 devilutionx`devilution::LoadBackgroundArt(pszFile=<unavailable>, frames=1) at diabloui.cpp:714:2 frame #12: 0x0000000a0fbfbb20 devilutionx`devilution::UiMainMenuDialog(char const*, devilution::_mainmenu_selections*, int) [inlined] devilution::(anonymous namespace)::MainmenuLoad(name="DevilutionX vDebug") at unique_ptr.h:0:5 frame #13: 0x0000000a0fbfb614 devilutionx`devilution::UiMainMenuDialog(name="DevilutionX vDebug", pdwResult=0x0000007e6c3a15cc, attractTimeOut=30) at mainmenu.cpp:99:3 frame #14: 0x0000000a0fb511b4 devilutionx`devilution::mainmenu_loop() at menu.cpp:155:13 frame #15: 0x0000000a0fafb770 devilutionx`devilution::DiabloMain(argc=<unavailable>, argv=<unavailable>) at diablo.cpp:2435:2 frame #16: 0x0000000a0fad46f8 devilutionx`_start + 284 bentley@'s thought was to rebuild mesa with debug info to proceed, but I can't seem to get any symbols to show up and I actually get four additional frames. Example: Process 92689 stopped * thread #1, stop reason = signal SIGILL frame #0: 0x0000001840b33000 -> 0x1840b33000: stp d15, d14, [sp, #-0xa0]! 0x1840b33004: sub x9, sp, #0x40 ; =0x40 0x1840b33008: stp d13, d12, [sp, #0x10] 0x1840b3300c: stp d11, d10, [sp, #0x20] (lldb) bt * thread #1, stop reason = signal SIGILL * frame #0: 0x0000001840b33000 frame #1: 0x00000017c8286b4c frame #2: 0x00000017c82b1bac frame #3: 0x00000017c82b0808 frame #4: 0x00000017c8284404 frame #5: 0x00000017c8283f24 frame #6: 0x00000017c8283cb8 frame #7: 0x00000017c890cc9c frame #8: 0x00000017c82c3800 frame #9: 0x00000017c7e5bbb4 frame #10: 0x00000017c7e50f90 frame #11: 0x00000017c7e50d64 frame #12: 0x000000182072b9a8 frame #13: 0x000000182808b8a8 libSDL2.so.0.14`GL_RunCommandQueue + 1168 frame #14: 0x0000001828085898 libSDL2.so.0.14`SDL_RenderPresent_REAL + 128 frame #15: 0x00000013b20ee5b4 devilutionx`devilution::RenderPresent() at dx.cpp:247:3 frame #16: 0x00000013b20c3554 devilutionx`devilution::LoadBackgroundArt(pszFile=<unavailable>, frames=1) at diabloui.cpp:714:2 frame #17: 0x00000013b20cbb20 devilutionx`devilution::UiMainMenuDialog(char const*, devilution::_mainmenu_selections*, int) [inlined] devilution::(anonymous namespace)::MainmenuLoad(name="DevilutionX vDebug") at unique_ptr.h:0:5 frame #18: 0x00000013b20cb614 devilutionx`devilution::UiMainMenuDialog(name="DevilutionX vDebug", pdwResult=0x00000064ae8e2cdc, attractTimeOut=30) at mainmenu.cpp:99:3 frame #19: 0x00000013b20211b4 devilutionx`devilution::mainmenu_loop() at menu.cpp:155:13 frame #20: 0x00000013b1fcb770 devilutionx`devilution::DiabloMain(argc=<unavailable>, argv=<unavailable>) at diablo.cpp:2435:2 frame #21: 0x00000013b1fa46f8 devilutionx`_start + 284 I can see xorg-config.cache.arm64 has ac_cv_env_CFLAGS_value=-g set so I believe the I've rebuilt with debug info. I don't understand how/why the extra four frames would appear though and why there's no additional information. Is there something I've missed? Thanks, Lucas