При попытке отследить заблокированный мьютекс, вызов стека кажется обрезанным во время ожидания мьютекса. Я не вижу нормального графа вызовов, только следующее:
0 CpupSyscallStub wow64cpu 0x75132e09
1 Thunk0ArgReloadState wow64cpu 0x75132bf1
2 RunCpuSimulation wow64 0x751ad07e
3 Wow64LdrpInitialize wow64 0x751ac549
4 LdrpInitializeProcess ntdll 0x77984956
5 ?? :: FNODOBFM :: `string ‘ntdll 0x77981a17
6 LdrInitializeThunk ntdll 0x7796c32e
Это блокировка на QMutex, я разрабатываю с Qt Creator, используя CDB из MSVC2008. Я хотел бы иметь возможность видеть «нормальный» стек, то есть граф вызовов до точки вызова mutex.lock ().
Если бы мне пришлось угадывать, это было бы связано с отладкой 32-битного приложения на 64-битной машине. Есть идеи, как получить правильный callstack?
Эта ссылка кратко затрагивает проблему. Отладка Qt Windows
Это не проблема Qt или Qt Creator. CDB.exe, отладчик командной строки Windows (похож на GDB), построен в двух версиях, 32 и 64 бит. При отладке 32-битного приложения на 32-битной CDB стек приложения выглядит нормально. При отладке 32-битного приложения на 64-битной CDB стек запутывается 32-битным эмулятором.
Других решений пока нет …