2
我正在調試死鎖。我想喚醒一個正在等待條件變量的線程,以便在重新檢查睡眠條件時追蹤它。睡在一個條件變量上會受到虛假喚醒的影響,那麼我該如何強制喚醒?如何讓調試器強制Windows線程從睡眠中醒來?
我正在調試死鎖。我想喚醒一個正在等待條件變量的線程,以便在重新檢查睡眠條件時追蹤它。睡在一個條件變量上會受到虛假喚醒的影響,那麼我該如何強制喚醒?如何讓調試器強制Windows線程從睡眠中醒來?
如果你正在使用windbg,你可以使用windbg的.call
命令在惡人中調用WakeAllConditionVariable。
我正在使用Visual Studio,但您的建議可能會使用即時窗口。一個騙局是,所有的線程都被喚醒了,不僅是有趣的。 –
使用windbg,您可以先用'〜n'暫停所有不感興趣的線程(當它們在SleepConditionVariable *調用中被阻塞時),然後發出'.call'命令。現在,只有有趣的線程纔會醒來。 –