Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use libbacktrace to generate readable backtrace on Windows #36615

Merged
merged 6 commits into from
Jan 6, 2020

Conversation

Qrox
Copy link
Contributor

@Qrox Qrox commented Jan 1, 2020

Summary

SUMMARY: Build "Use libbacktrace to generate readable backtrace on Windows"

Purpose of change

The Windows dbghelp library currently used to generate backtrace is unable to read the debug info genrated by MinGW, so the current implementation only prints the addresses of the call stack, which does not help much for debugging. This PR uses libbacktrace of GCC in addition to dbghelp to generate readable backtrace on Windows.

Describe the solution

  1. Used libbacktrace in addition to dbghelp to generate backtrace on Windows. dbghelp is still used, since
    1. Stack walking using libbacktrace doesn't appear to work, at least not on the release build.
    2. Some dynamic libraries do not have the DWARF debug info required by libbacktrace
  2. Removed the Windows-specific code in crash.cpp and used debug_write_backtrace to generate the crash log.
  3. Added options to the cmake and make builds to build with libbacktrace.
  4. Changed MinGW cross compilation to use libbacktrace.

Describe alternatives you've considered

Do not use libbacktrace and cry when another bug report comes in with only hexadecimal numbers in the backtrace.

Testing

sample debug log
22:01:10.216 ERROR : (error message will follow backtrace)
  #0
    (dbghelp: @0x40ddeb[cataclysm-tiles.exe+0xddeb]), 
    (libbacktrace: Z21debug_write_backtraceRSo+0x52@0x40ddeb),
    (libbacktrace: 0x40ddeb    <unknown src>:0    <unknown func>),
  #1
    (dbghelp: @0x40e436[cataclysm-tiles.exe+0xe436]), 
    (libbacktrace: Z8DebugLog10DebugLevel10DebugClass+0x1d7@0x40e436),
    (libbacktrace: 0x40e436    <unknown src>:0    <unknown func>),
  #2
    (dbghelp: @0x40edfe[cataclysm-tiles.exe+0xedfe]), 
    (libbacktrace: Z12realDebugmsgPKcS0_S0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x3d@0x40edfe),
    (libbacktrace: 0x40edfe    <unknown src>:0    <unknown func>),
  #3
    (dbghelp: @0xa6f41c[cataclysm-tiles.exe+0x66f41c]), 
    (libbacktrace: Z12realDebugmsgIJEEvPKcS1_S1_S1_DpOT_+0x4c@0xa6f41c),
    (libbacktrace: 0xa6f41c    <unknown src>:0    <unknown func>),
  #4
    (dbghelp: @0x9b0010[cataclysm-tiles.exe+0x5b0010]), 
    (libbacktrace: ZN10debug_menu5debugEv+0x40d9@0x9b0010),
    (libbacktrace: 0x9b0010    <unknown src>:0    <unknown func>),
  #5
    (dbghelp: @0x465f50[cataclysm-tiles.exe+0x65f50]), 
    (libbacktrace: ZN4game13handle_actionEv+0x4b1e@0x465f50),
    (libbacktrace: 0x465f50    <unknown src>:0    <unknown func>),
  #6
    (dbghelp: @0x43ddcd[cataclysm-tiles.exe+0x3ddcd]), 
    (libbacktrace: ZN4game7do_turnEv+0x487@0x43ddcd),
    (libbacktrace: 0x43ddcd    <unknown src>:0    <unknown func>),
  #7
    (dbghelp: @0x4037d9[cataclysm-tiles.exe+0x37d9]), 
    (libbacktrace: WinMain+0x1270@0x4037d9),
    (libbacktrace: 0x4037d9    <unknown src>:0    <unknown func>),
  #8
    (dbghelp: @0x4013c7[cataclysm-tiles.exe+0x13c7]), 
    (libbacktrace: _tmainCRTStartup+0x247@0x4013c7),
    (libbacktrace: 0x4013c7    <unknown src>:0    <unknown func>),
  #9
    (dbghelp: @0x4014cb[cataclysm-tiles.exe+0x14cb]), 
    (libbacktrace: WinMainCRTStartup+0x1b@0x4014cb),
    (libbacktrace: 0x4014cb    <unknown src>:0    <unknown func>),
  #10
    (dbghelp: BaseThreadInitThunk+0x14@0x7ffa46767bd4[KERNEL32.DLL+0x17bd4]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #11
    (dbghelp: RtlUserThreadStart+0x21@0x7ffa477eced1[ntdll.dll+0x6ced1]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
Backtrace emission took 0 seconds.
*snip*/debug_menu.cpp:1527 [void debug_menu::debug()] Test debugmsg
sample debug log on debug build
01:22:37.388 ERROR : (error message will follow backtrace)
  #0
    (dbghelp: @0x78fc27[cata_test-tiles.exe+0x38fc27]), 
    (libbacktrace: Z21debug_write_backtraceRSo+0x4f@0x78fc27),
    (libbacktrace: 0x78fc27    *snip*/src/debug.cpp:664    _Z21debug_write_backtraceRSo),
  #1
    (dbghelp: @0x79055c[cata_test-tiles.exe+0x39055c]), 
    (libbacktrace: Z8DebugLog10DebugLevel10DebugClass+0x2db@0x79055c),
    (libbacktrace: 0x79055c    *snip*/x86_64-w64-mingw32/include/time.h:242    time),
    (libbacktrace: 0x79055c    *snip*/src/debug.cpp:926    _Z8DebugLog10DebugLevel10DebugClass),
  #2
    (dbghelp: @0x7930a8[cata_test-tiles.exe+0x3930a8]), 
    (libbacktrace: Z12realDebugmsgPKcS0_S0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x60@0x7930a8),
    (libbacktrace: 0x7930a8    *snip*/src/debug.cpp:110    _Z12realDebugmsgPKcS0_S0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE),
  #3
    (dbghelp: @0x6104e3[cata_test-tiles.exe+0x2104e3]), 
    (libbacktrace: main+0x774@0x6104e3),
    (libbacktrace: 0x6104e3    *snip*/src/debug.h:79    _Z12realDebugmsgIJEEvPKcS1_S1_S1_DpOT_),
    (libbacktrace: 0x6104e3    *snip*/tests/test_main.cpp:302    main),
  #4
    (dbghelp: @0x4013c7[cata_test-tiles.exe+0x13c7]), 
    (libbacktrace: _tmainCRTStartup+0x247@0x4013c7),
    (libbacktrace: 0x4013c7    <unknown src>:0    <unknown func>),
  #5
    (dbghelp: @0x4014fb[cata_test-tiles.exe+0x14fb]), 
    (libbacktrace: mainCRTStartup+0x1b@0x4014fb),
    (libbacktrace: 0x4014fb    <unknown src>:0    <unknown func>),
  #6
    (dbghelp: BaseThreadInitThunk+0x14@0x7ffa46767bd4[KERNEL32.DLL+0x17bd4]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #7
    (dbghelp: RtlUserThreadStart+0x21@0x7ffa477eced1[ntdll.dll+0x6ced1]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
sample crash log
The program has crashed.
See the log file for a stack trace.
CRASH LOG FILE: ./config/crash.log
VERSION: 0.D-10901-g07df86e358
TYPE: Signal
MESSAGE: SIGSEGV: Segmentation fault
STACK TRACE:
 
  #0
    (dbghelp: @0x40ddeb[cataclysm-tiles.exe+0xddeb]), 
    (libbacktrace: Z21debug_write_backtraceRSo+0x52@0x40ddeb),
    (libbacktrace: 0x40ddeb    <unknown src>:0    <unknown func>),
  #1
    (dbghelp: @0x40c0cf[cataclysm-tiles.exe+0xc0cf]), 
    (libbacktrace: log_crash+0x1c3@0x40c0cf),
    (libbacktrace: 0x40c0cf    <unknown src>:0    <unknown func>),
  #2
    (dbghelp: @0x40c2f7[cataclysm-tiles.exe+0xc2f7]), 
    (libbacktrace: signal_handler+0x52@0x40c2f7),
    (libbacktrace: 0x40c2f7    <unknown src>:0    <unknown func>),
  #3
    (dbghelp: raise+0x21b@0x7ffa466dae7b[msvcrt.dll+0x2ae7b]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #4
    (dbghelp: @0x9b001f[cataclysm-tiles.exe+0x5b001f]), 
    (libbacktrace: ZN10debug_menu5debugEv+0x40e8@0x9b001f),
    (libbacktrace: 0x9b001f    <unknown src>:0    <unknown func>),
  #5
    (dbghelp: @0x465f50[cataclysm-tiles.exe+0x65f50]), 
    (libbacktrace: ZN4game13handle_actionEv+0x4b1e@0x465f50),
    (libbacktrace: 0x465f50    <unknown src>:0    <unknown func>),
  #6
    (dbghelp: @0x43ddcd[cataclysm-tiles.exe+0x3ddcd]), 
    (libbacktrace: ZN4game7do_turnEv+0x487@0x43ddcd),
    (libbacktrace: 0x43ddcd    <unknown src>:0    <unknown func>),
  #7
    (dbghelp: @0x4037d9[cataclysm-tiles.exe+0x37d9]), 
    (libbacktrace: WinMain+0x1270@0x4037d9),
    (libbacktrace: 0x4037d9    <unknown src>:0    <unknown func>),
  #8
    (dbghelp: @0x4013c7[cataclysm-tiles.exe+0x13c7]), 
    (libbacktrace: _tmainCRTStartup+0x247@0x4013c7),
    (libbacktrace: 0x4013c7    <unknown src>:0    <unknown func>),
  #9
    (dbghelp: @0x4014cb[cataclysm-tiles.exe+0x14cb]), 
    (libbacktrace: WinMainCRTStartup+0x1b@0x4014cb),
    (libbacktrace: 0x4014cb    <unknown src>:0    <unknown func>),
  #10
    (dbghelp: BaseThreadInitThunk+0x14@0x7ffa46767bd4[KERNEL32.DLL+0x17bd4]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #11
    (dbghelp: RtlUserThreadStart+0x21@0x7ffa477eced1[ntdll.dll+0x6ced1]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
sample crash log on debug build
The program has crashed.
See the log file for a stack trace.
CRASH LOG FILE: ./config/crash.log
VERSION: 0.D-10979-gf2fe6da55d
TYPE: Signal
MESSAGE: SIGSEGV: Segmentation fault
STACK TRACE:
 
  #0
    (dbghelp: @0x417966[cataclysm-tiles.exe+0x17966]), 
    (libbacktrace: Z21debug_write_backtraceRSo+0x56@0x417966),
    (libbacktrace: 0x417966    *snip*/src/debug.cpp:664    _Z21debug_write_backtraceRSo),
  #1
    (dbghelp: @0x4144bc[cataclysm-tiles.exe+0x144bc]), 
    (libbacktrace: log_crash+0x40c@0x4144bc),
    (libbacktrace: 0x4144bc    *snip*/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:146    _ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv),
    (libbacktrace: 0x4144bc    *snip*/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/sstream:639    _ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv),
    (libbacktrace: 0x4144bc    *snip*/src/crash.cpp:81    log_crash),
  #2
    (dbghelp: @0x414a9d[cataclysm-tiles.exe+0x14a9d]), 
    (libbacktrace: signal_handler+0x3d@0x414a9d),
    (libbacktrace: 0x414a9d    *snip*/src/crash.cpp:115    signal_handler),
  #3
    (dbghelp: +0x21b@0x7ffa466dae7b[msvcrt.dll+0x2ae7b]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #4
    (dbghelp: @0xe69f80[cataclysm-tiles.exe+0xa69f80]), 
    (libbacktrace: ZN10debug_menu5debugEv+0x2720@0xe69f80),
    (libbacktrace: 0xe69f80    *snip*/src/debug_menu.cpp:1531    _ZN10debug_menu5debugEv),
  #5
    (dbghelp: @0x4b41c1[cataclysm-tiles.exe+0xb41c1]), 
    (libbacktrace: ZN4game13handle_actionEv+0x1be1@0x4b41c1),
    (libbacktrace: 0x4b41c1    *snip*/src/handle_action.cpp:2251    _ZN4game13handle_actionEv),
  #6
    (dbghelp: @0x484c1a[cataclysm-tiles.exe+0x84c1a]), 
    (libbacktrace: ZN4game7do_turnEv+0x71a@0x484c1a),
    (libbacktrace: 0x484c1a    *snip*/src/game.cpp:1450    _ZN4game7do_turnEv),
  #7
    (dbghelp: @0x403df8[cataclysm-tiles.exe+0x3df8]), 
    (libbacktrace: WinMain+0xe78@0x403df8),
    (libbacktrace: 0x403df8    *snip*/src/main.cpp:688    WinMain),
  #8
    (dbghelp: @0x4013c7[cataclysm-tiles.exe+0x13c7]), 
    (libbacktrace: _tmainCRTStartup+0x247@0x4013c7),
    (libbacktrace: 0x4013c7    <unknown src>:0    <unknown func>),
  #9
    (dbghelp: @0x4014cb[cataclysm-tiles.exe+0x14cb]), 
    (libbacktrace: WinMainCRTStartup+0x1b@0x4014cb),
    (libbacktrace: 0x4014cb    <unknown src>:0    <unknown func>),
  #10
    (dbghelp: +0x14@0x7ffa46767bd4[KERNEL32.DLL+0x17bd4]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #11
    (dbghelp: +0x21@0x7ffa477eced1[ntdll.dll+0x6ced1]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
sample debug log from the unit test (log)
16:23:30.962 ERROR : (error message will follow backtrace)
  #0
    (dbghelp: @0x637578[cata_test.exe+0x237578]), 
    (libbacktrace: _Z21debug_write_backtraceRSo+0xd9@0x637578),
    (libbacktrace: 0x637578    <unknown src>:0    <unknown func>),
  #1
    (dbghelp: @0x637d4d[cata_test.exe+0x237d4d]), 
    (libbacktrace: _Z8DebugLog10DebugLevel10DebugClass+0x208@0x637d4d),
    (libbacktrace: 0x637d4d    <unknown src>:0    <unknown func>),
  #2
    (dbghelp: @0x638bbb[cata_test.exe+0x238bbb]), 
    (libbacktrace: _Z12realDebugmsgPKcS0_S0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x104@0x638bbb),
    (libbacktrace: 0x638bbb    <unknown src>:0    <unknown func>),
  #3
    (dbghelp: @0x160a590[cata_test.exe+0x120a590]), 
    (libbacktrace: main+0xc16@0x160a590),
    (libbacktrace: 0x160a590    <unknown src>:0    <unknown func>),
  #4
    (dbghelp: @0x401382[cata_test.exe+0x1382]), 
    (libbacktrace: __tmainCRTStartup+0x232@0x401382),
    (libbacktrace: 0x401382    ../gcc-5.5.0.build_/mingw-w64-v6.0.0/mingw-w64-crt/crt/crtexe.c:341    __tmainCRTStartup),
  #5
    (dbghelp: call_process_entry+0xc@0x7b85a3ec[KERNEL32.dll+0x4a3ec]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #6
    (dbghelp: ExitProcess+0xfea@0x7b85b3da[KERNEL32.dll+0x4b3da]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #7
    (dbghelp: call_thread_func_wrapper+0xc@0x7bc7703c[ntdll.dll+0x6703c]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #8
    (dbghelp: @0x7bc79e5d[ntdll.dll+0x69e5d]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #9
    (dbghelp: RtlRaiseException+0x22@0x7bc7701a[ntdll.dll+0x6701a]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #10
    (dbghelp: call_dll_entry_point+0x757@0x7bc4d277[ntdll.dll+0x3d277]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #11
    (dbghelp: @0xf7dc333d), 
    (unable to get module base address),

@Qrox Qrox force-pushed the mingw-backtrace branch 3 times, most recently from f4e6e10 to a1a2c80 Compare January 2, 2020 11:43
@Qrox
Copy link
Contributor Author

Qrox commented Jan 2, 2020

Well, turns out libbacktrace is not a distributed part of GCC. There has been a pull request to add it to the MXE environment, but that pull request has been inactive for well over a year.

@Qrox Qrox force-pushed the mingw-backtrace branch 4 times, most recently from abc946b to a00d30d Compare January 3, 2020 11:12
@Qrox Qrox force-pushed the mingw-backtrace branch 2 times, most recently from 1f6a73b to f2fe6da Compare January 3, 2020 15:58
@Qrox Qrox marked this pull request as ready for review January 4, 2020 03:18
@Qrox
Copy link
Contributor Author

Qrox commented Jan 4, 2020

It's working in the CI builds now. However to release Windows binaries with this change, the build script of narc.ro needs to be changed. Of course I can hack the Makefile to do it, but that seems rather inelegant. @narc0tiq can you change the build script of Jenkins to build the Windows binaries against libbacktrace with LIBBACKTRACE=1, once this gets merged? The prebuilt binaries of libbacktrace can be found here.

@ZhilkinSerg
Copy link
Contributor

ZhilkinSerg commented Jan 6, 2020

@Qrox I guess we'll just need to add
export BACKTRACE=1 and export LIBBACKTRACE=1 here:

## Set up environment
case "${Platform}" in
    "Windows")
        PLATFORM="i686-w64-mingw32.static"
        export CROSS="/home/narc/mxe/usr/bin/${PLATFORM}-"
        export NATIVE="win32"
    ;;
    "Windows_x64")
        PLATFORM="x86_64-w64-mingw32.static"
        export CROSS="/home/narc/mxe/usr/bin/${PLATFORM}-"
        export NATIVE="win64"
    ;;

Edit: It is also possible, that it would all just work automatically as BACKTRACE is set to 1 by default for non-MSYS2 builds (and LIBBACKTRACE is set to 1 by default when cross-compiling for Windows).

I will see if we would need to download libbacktrace binary to Jenkins manually.

@jbytheway
Copy link
Contributor

If we're using libbacktrace on Windows we should probably just use it on Linux (and Mac? (and Android?)) too. It should fix the ongoing annoyance of backtraces being super slow. The main reason I didn't use it when implementing backtrace symbolising before was to avoid the complexity of another optional dependency, and now we have that.

@ZhilkinSerg
Copy link
Contributor

11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/x86_64-w64-mingw32.static/lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/x86_64-w64-mingw32.static/lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/x86_64-w64-mingw32.static/lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/x86_64-w64-mingw32.static/lib/../lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/x86_64-w64-mingw32.static/lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/lib/gcc/x86_64-w64-mingw32.static/5.4.0/../../../../x86_64-w64-mingw32.static/lib/../lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/lib/gcc/x86_64-w64-mingw32.static/5.4.0/../../../../x86_64-w64-mingw32.static/lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: skipping incompatible /home/narc/src/mxe/usr/x86_64-w64-mingw32.static/lib/libbacktrace.a when searching for -lbacktrace
11:32:36 /home/narc/src/mxe/usr/bin/x86_64-w64-mingw32.static-ld: cannot find -lbacktrace

@Qrox
Copy link
Contributor Author

Qrox commented Jan 7, 2020

Are you using the x86_64 (64 bit) or the i686 (32 bit) binary? It's linking to a 64 bit target so it should use the x86_64 one.

@ZhilkinSerg
Copy link
Contributor

Are you using the x86_64 (64 bit) or the i686 (32 bit) binary? It's linking to a 64 bit target so it should use the x86_64 one.

Oh, yes. Could be my bad - I've probably curled 32 bit version and unpacked it to 64 bit folder.

@ZhilkinSerg
Copy link
Contributor

13:40:37.846 ERROR : (error message will follow backtrace)
  #0
    (dbghelp: @0x5f6e66[cataclysm-tiles.exe+0x1f6e66]), 
    (libbacktrace: Z21debug_write_backtraceRSo+0x56@0x5f6e66),
    (libbacktrace: 0x5f6e66    [unknown src]:0    [unknown func]),
  #1
    (dbghelp: @0x5f78fa[cataclysm-tiles.exe+0x1f78fa]), 
    (libbacktrace: Z8DebugLog10DebugLevel10DebugClass+0x34a@0x5f78fa),
    (libbacktrace: 0x5f78fa    [unknown src]:0    [unknown func]),
  #2
    (dbghelp: @0x5fa616[cataclysm-tiles.exe+0x1fa616]), 
    (libbacktrace: Z12realDebugmsgPKcS0_S0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x76@0x5fa616),
    (libbacktrace: 0x5fa616    [unknown src]:0    [unknown func]),
  #3
    (dbghelp: IMG_LoadWEBP_RW+0x11bcae@0x11fad2e[cataclysm-tiles.exe+0xdfad2e]), 
    (libbacktrace: Z12realDebugmsgIJPKcEEvS1_S1_S1_S1_DpOT_+0x31e@0x11fad2e),
    (libbacktrace: 0x11fad2e    [unknown src]:0    [unknown func]),
  #4
    (dbghelp: @0x83e843[cataclysm-tiles.exe+0x43e843]), 
    (libbacktrace: ZNK12Item_factory17usage_from_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x83@0x83e843),
    (libbacktrace: 0x83e843    [unknown src]:0    [unknown func]),
  #5
    (dbghelp: @0x83ee82[cataclysm-tiles.exe+0x43ee82]), 
    (libbacktrace: ZN12Item_factory25set_use_methods_from_jsonERK10JsonObjectRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSt3mapIS8_12use_functionSt4lessIS8_ESaISt4pairIS9_SC_EEE+0x2a2@0x83ee82),
    (libbacktrace: 0x83ee82    [unknown src]:0    [unknown func]),
  #6
    (dbghelp: @0x84e045[cataclysm-tiles.exe+0x44e045]), 
    (libbacktrace: ZN12Item_factory15load_basic_infoERK10JsonObjectR5itypeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x1955@0x84e045),
    (libbacktrace: 0x84e045    [unknown src]:0    [unknown func]),
  #7
    (dbghelp: @0x851373[cataclysm-tiles.exe+0x451373]), 
    (libbacktrace: ZN12Item_factory15load_tool_armorERK10JsonObjectRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x73@0x851373),
    (libbacktrace: 0x851373    [unknown src]:0    [unknown func]),
  #8
    (dbghelp: @0x794881[cataclysm-tiles.exe+0x394881]), 
    (libbacktrace: ZN17DynamicDataLoader11load_objectERK10JsonObjectRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_SA_+0x161@0x794881),
    (libbacktrace: 0x794881    [unknown src]:0    [unknown func]),
  #9
    (dbghelp: @0x797842[cataclysm-tiles.exe+0x397842]), 
    (libbacktrace: ZN17DynamicDataLoader18load_all_from_jsonER6JsonInRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10loading_uiS9_S9_+0x182@0x797842),
    (libbacktrace: 0x797842    [unknown src]:0    [unknown func]),
  #10
    (dbghelp: @0x797e6b[cataclysm-tiles.exe+0x397e6b]), 
    (libbacktrace: ZN17DynamicDataLoader19load_data_from_pathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_R10loading_ui+0x4eb@0x797e6b),
    (libbacktrace: 0x797e6b    [unknown src]:0    [unknown func]),
  #11
    (dbghelp: @0x6e0041[cataclysm-tiles.exe+0x2e0041]), 
    (libbacktrace: ZN4game10load_packsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorI9string_idI15MOD_INFORMATIONESaISB_EER10loading_ui+0x231@0x6e0041),
    (libbacktrace: 0x6e0041    [unknown src]:0    [unknown func]),
  #12
    (dbghelp: @0x6e1da0[cataclysm-tiles.exe+0x2e1da0]), 
    (libbacktrace: ZN4game19load_world_modfilesER10loading_ui+0x540@0x6e1da0),
    (libbacktrace: 0x6e1da0    [unknown src]:0    [unknown func]),
  #13
    (dbghelp: @0x70a1b5[cataclysm-tiles.exe+0x30a1b5]), 
    (libbacktrace: ZN4game5setupEv+0xa5@0x70a1b5),
    (libbacktrace: 0x70a1b5    [unknown src]:0    [unknown func]),
  #14
    (dbghelp: @0x952aaa[cataclysm-tiles.exe+0x552aaa]), 
    (libbacktrace: ZN9main_menu18load_character_tabEb+0x165a@0x952aaa),
    (libbacktrace: 0x952aaa    [unknown src]:0    [unknown func]),
  #15
    (dbghelp: @0x956739[cataclysm-tiles.exe+0x556739]), 
    (libbacktrace: ZN9main_menu14opening_screenEv+0xf49@0x956739),
    (libbacktrace: 0x956739    [unknown src]:0    [unknown func]),
  #16
    (dbghelp: IMG_LoadWEBP_RW+0x659814@0x1738894[cataclysm-tiles.exe+0x1338894]), 
    (libbacktrace: main+0x1524@0x1738894),
    (libbacktrace: 0x1738894    [unknown src]:0    [unknown func]),
  #17
    (dbghelp: @0x4013ed[cataclysm-tiles.exe+0x13ed]), 
    (libbacktrace: _tmainCRTStartup+0x23d@0x4013ed),
    (libbacktrace: 0x4013ed    /home/narc/src/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_/mingw-w64-v5.0.2/mingw-w64-crt/crt/crtexe.c:336    __tmainCRTStartup),
  #18
    (dbghelp: @0x4014fb[cataclysm-tiles.exe+0x14fb]), 
    (libbacktrace: WinMainCRTStartup+0x1b@0x4014fb),
    (libbacktrace: 0x4014fb    /home/narc/src/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_/mingw-w64-v5.0.2/mingw-w64-crt/crt/crtexe.c:186    WinMainCRTStartup),
  #19
    (dbghelp: BaseThreadInitThunk+0x14@0x7ffe09d384d4[KERNEL32.DLL+0x84d4]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
  #20
    (dbghelp: RtlUserThreadStart+0x21@0x7ffe0c80e8b1[ntdll.dll+0x6e8b1]), 
    (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
    (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
Backtrace emission took 0 seconds.
src/item_factory.cpp:2671 [use_function Item_factory::usage_from_string(const string&) const] Received unrecognized iuse function IUSE_DDA_LUA_ENTITY_SCANNER, using iuse::none instead

@ZhilkinSerg
Copy link
Contributor

Seems to be working nice!

@kevingranade
Copy link
Member

This pull request has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there:

https://discourse.cataclysmdda.org/t/resolved-attempting-to-play-0-e-2-stable-and-my-eyes-bleed-on-the-overmap/24798/2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants