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

Windows中,是否有一个工具来监视进程同步对象的状态? 即。

  • 事件/互斥:发信号或不发信号
  • 信号量:数量

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

内存验证器

Process Explorer

处理用法: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 (如果同步对象是事件):提供关于状态的信息(是否同步对象被发送信号)

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

看看英特尔的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/

线程验证器执行你所描述的。

监视线程,锁的状态,单个线程对象。 比Intel的Thread Checker快得多,但细节层次不同。

Windbg可以是有用的,但你必须学习如何使用它。