Winedbg

Материал из Русский WINE
Версия от 12:19, 14 июля 2015; ВиталийЛипатов (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
$ winedbg

Wine-dbg>info proc
 pid      threads  executable (all id:s are in hex)
 00000010 8        'services.exe'
 0000002e 3        \_ 'plugplay.exe'
 00000020 3        \_ 'winedevice.exe'
 00000014 3        \_ 'winedevice.exe'
 0000001e 6           \_ 'winedevice.exe'

Подсоединиться к нужному процессу/потоку, указав его PID в шестнадцатиричном виде с префиксом 0x:

Wine-dbg>attach 0x20
0xb760cccf __libc_read+0x3f in libpthread.so.0: int	$0x80

Посмотреть backtrace:

Wine-dbg>bt 
Backtrace:
=>0 0xb760cccf __libc_read+0x3f() in libpthread.so.0 (0x8122f678)
  1 0x8ff6440f in ntdll (+0x6440e) (0x8122f678)
  2 0x8ff666f3 in ntdll (+0x666f2) (0x8122f8a8)
...

Отключиться от процесса:

Wine-dbg>detach

Или продолжить выполнение:

Wine-dbg>c


Выйти из отладчика:

q

Если не ясно, какой именно поток зависший, можно просмотреть все.

Также нужно подключиться через $ strace -p PID к зависшему потоку (который берёт 100% процессора) и записать, что выводится там.