是否有工具来监视Windows中的同步对象(互斥,事件,信号量)?

时间:2009-04-29 07:38:41

标签: c++ windows visual-studio synchronization

在Windows中,是否有工具来监控进程同步对象的状态?即

  • event / mutex:已发信号或未发出信号
  • 信号量:计数

更好的是,记录哪个线程做了什么,例如。 “线程#5421信号事件 - testevt”

4 个答案:

答案 0 :(得分:6)

Memory Validator

Process Explorer

Handle用法:handle -s ==> Print count of each type of handle open.

<强> [编辑]

如何使用Process Explorer监控进程同步对象的状态。

打开Process Explorer

  • 单击流程部分中的exe(例如:MyApp.exe)
  • 点击Show Lower Pane(或按Ctrl+L)。这将显示所有同步对象。 (例如:myEvent)
  • 右键单击同步 对象(例如:myEvent)并单击 属性...在上下文菜单中。
  • 这会带来同步对象的详细信息。 在Details标签中,您可以看到

    Event Info(如果同步对象是事件):提供有关的信息 state(是否发信号通知同步对象)

    Semaphore info(如果synch对象是信号量): 提供信号量的计数。

答案 1 :(得分:1)

看看英特尔的ThreadChecker和Parallel Studio。他们的大多数工具都位于Visual Studio之上。

http://software.intel.com/en-us/intel-vtune/

http://software.intel.com/en-us/intel-thread-checker/

http://software.intel.com/en-us/intel-vtune/

答案 2 :(得分:1)

Thread Validator执行您所描述的内容。

监视线程,锁的状态,各个线程对象。比英特尔的线程检查器快得多,但细节水平不同。

答案 3 :(得分:0)

Windbg可能会有所帮助,但你必须学习如何使用它。