C ++查看监视窗口中的互斥量值

时间:2010-10-02 11:01:05

标签: c++ visual-studio multithreading debugging

是否可以在调试模式下查看Watch winodw中Mutex或Semaphore的值?

3 个答案:

答案 0 :(得分:3)

您可以使用kernel debugger(Kd或WinDbg)以及!handle!object扩展命令查看内核对象(如互斥锁和信号量)的状态。请注意,内核调试需要第二台PC(尽管VM guest虚拟机在某些情况下可能就足够了)。

另请注意,关键部分不是内核对象(尽管它们可能包含一个句柄),因此您应该能够使用用户模式调试器查看有关它们的一些信息。

答案 1 :(得分:1)

没有。因为你持有的价值只是处理内部窗口结构。

答案 2 :(得分:0)

如果调试器可以看到同步对象的内部状态,那么程序也可以。允许它绕过API并以线程不安全的方式使用对象。这是为了你自己的利益,但当然在试图调试线程问题时是一个巨大的皮塔饼。祝你好运。