Debugging a DotNet App.

Questions about Wine on Linux
Post Reply
dvlohp
Newbie
Newbie
Posts: 1
Joined: Sat May 16, 2020 6:04 pm

Debugging a DotNet App.

Post by dvlohp » Sat May 16, 2020 6:32 pm

Hi all,

A program I use (Hearthstone Deck Tracker) recently switched from DotNet 4.5 to DotNet 4.7.2. Unfortunately, with 4.7.2, the program hangs when started in wine.
I'd like to debug this hang, however, I am not able to get a meaningful stack trace.
Attaching with plain gdb, I can see that there are 15 threads running, however, they all basically show the same useless back trace (wine is compiled with debug info).

Code: Select all

(gdb) thread apply all bt

Thread 15 (LWP 1451478):
#0  0xf7f5f169 in __kernel_vsyscall ()
#1  0xf7d460e7 in ?? ()
#2  0x7bcc97b9 in ?? ()
[...] Similar output for all other threads [...]
Well, that's probably to be expected for a windows program, although I would expect to see some wine stuff in there. However, what I get from winedbg is not very useful either. ;(

Code: Select all

Wine-dbg>info process
 pid      threads  executable (all id:s are in hex)
 00000110 1        'winedbg.exe'
 0000004c 4        'explorer.exe'
 00000038 8        'services.exe'
 00000084 6        \_ 'winedevice.exe'
 0000006c 5        \_ 'plugplay.exe'
 00000044 4        \_ 'winedevice.exe'
 00000020 15       'HearthstoneDeckTracker.exe'
Wine-dbg>attach 0x20
0x000000007bccba55 DbgBreakPoint+0x1 in ntdll: ret
Wine-dbg>bt all

Backtracing for thread 0124 in process 0020 (C:\Hearthstone Deck Tracker.debug\HearthstoneDeckTracker.exe):
Backtrace:
=>0 0x000000007bccba55 DbgBreakPoint+0x1() in ntdll (0x000000001218ff48)
  1 0x000000007bcb4d62 DbgUiRemoteBreakin+0x81(arg=<couldn't compute location>) [\\?\unix\usr\src\winebld32\dlls\ntdll\..\..\..\wine-current\dlls\ntdll\process.c:1783] in ntdll (0x000000001218ff48)
  2 0x000000007bccba50 call_thread_func_wrapper+0xb() in ntdll (0x000000001218ff5c)
  3 0x000000007bccf5b7 call_thread_func+0x86() [\\?\unix\usr\src\winebld32\dlls\ntdll\..\..\..\wine-current\dlls\ntdll\signal_i386.c:3029] in ntdll (0x000000001218ffdc)
  4 0x000000007bccba42 call_thread_entry+0x9() in ntdll (0x000000001218ffec)

Backtracing for thread 0100 in process 0020 (C:\Hearthstone Deck Tracker.debug\HearthstoneDeckTracker.exe):
011c:fixme:dbghelp:i386_fetch_context_reg Unknown register 9a

Exception c0000005
Any idea how to find out what is going on? How to get a real stack trace of the application? I even fired up windows to compile a debug build of the application (it's mostly open source), but that didn't help either.

Post Reply