Windows 中是不是有监控同步对象(互斥量、事件、信号量)的工具?
Posted
技术标签:
【中文标题】Windows 中是不是有监控同步对象(互斥量、事件、信号量)的工具?【英文标题】:Is there a tool to monitor synchronisation objects (mutex, events, semaphores) in Windows?Windows 中是否有监控同步对象(互斥量、事件、信号量)的工具? 【发布时间】:2009-04-29 07:38:40 【问题描述】:在Windows中,有没有工具可以监控进程同步对象的状态?即。
事件/互斥体:有信号或没有信号 信号量:计数更好的是,记录哪个线程做了什么,例如。 “线程 #5421 信号事件 - testevt”
【问题讨论】:
【参考方案1】:Memory Validator
Process Explorer
Handle 用法:句柄 -s ==> Print count of each type of handle open.
[编辑]:
如何使用 Process Explorer 监控进程同步对象的状态。
打开进程浏览器
在进程部分单击您的 exe(例如:MyApp.exe) 单击Show Lower Pane
(或按Ctrl+L
)。这将显示所有同步对象。 (例如:myEvent)
右键单击同步
对象(例如:myEvent)并单击
属性...在上下文菜单中。
这带来了同步对象的细节。
在Details
选项卡中,您可以看到
Event Info
(如果同步对象是事件):提供有关
状态(同步对象是否发出信号)
Semaphore info
(如果同步对象是信号量):
提供信号量的计数。
【讨论】:
+1 for Process Explorer - 这是我用来探索 NT 对象的方法 感谢您的编辑。现在我真的知道 Process Explorer 满足了我的需求。【参考方案2】:看看英特尔的 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/
【讨论】:
【参考方案3】:Thread Validator 执行您所描述的操作。
监控线程、锁状态、单个线程对象。比 Intel 的 Thread Checker 快得多,但详细程度不同。
【讨论】:
【参考方案4】:Windbg 可能会有所帮助,但您必须学习如何使用它。
【讨论】:
以上是关于Windows 中是不是有监控同步对象(互斥量、事件、信号量)的工具?的主要内容,如果未能解决你的问题,请参考以下文章