在Windows中,有没有工具可以监控进程同步对象的状态?IE。

  • 事件/互斥体:发出信号或未发出信号
  • 信号量:数数

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

有帮助吗?

解决方案

内存验证器

流程浏览器

处理 用法:句柄-s==> Print count of each type of handle open.

[编辑]:

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

打开流程资源管理器

  • 单击进程部分中的 exe(例如:我的应用程序.exe)
  • 点击 Show Lower Pane (或按 Ctrl+L)。这将显示所有同步对象。(例如:我的活动)
  • 右键单击同步 对象(例如: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/

线程验证器 做你所描述的事情。

监视线程、锁的状态、单个线程对象。比英特尔的线程检查器快得多,但详细程度不同。

Windbg 可能很有帮助,但您必须学习如何使用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top