0

ブロックされたミューテックスを追跡しようとすると、ミューテックスを待機している間にコールスタックが切り捨てられたように見えます。通常のコール グラフは表示されません。次のようになります。

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 でブロックされています。MSVC2008 の CDB を使用して Qt Creator で開発しています。「通常の」スタック、つまり、mutex.lock() 呼び出しの時点までの呼び出しグラフを表示できるようにしたいと考えています。推測する必要がある場合は、64 ビット マシンで 32 ビット アプリをデバッグすることに関連しています。適切なコールスタックを取得する方法についてのアイデアはありますか?

4

1 に答える 1

0

このリンクは、問題について簡単に触れています。Qt Windows デバッグ

これは Qt または Qt Creator 固有の問題ではありません。Windows コマンド ライン デバッガー ( GDB に類似) である CDB.exe は、32 ビットと 64 ビットの 2 つのバージョンでビルドされます。32 ビット CDB で 32 ビット アプリをデバッグすると、アプリケーション スタックは正常に見えます。64 ビット CDB で 32 ビット アプリをデバッグすると、スタックが 32 ビット エミュレーターによって難読化されます。

于 2013-08-02T16:38:59.260 に答える