在Windbg中,如何确定是否发出手动重置事件的信号?

在Windbg中,如何确定是否发出手动重置事件的信号?,windbg,handle,Windbg,Handle,我使用 .dump /ma c:\mydump.dmp 我想知道是设置了特定的ManualResetEvent句柄还是正在等待。我试过了 0:181> !handle 2db0 f Event Handle 0000000000002db0 Type Event Attributes 0 GrantedAccess 0x1f0003: Delete,ReadControl,WriteDac,WriteOwner,Synch

我使用

.dump /ma c:\mydump.dmp
我想知道是设置了特定的
ManualResetEvent
句柄还是正在等待。我试过了

0:181> !handle 2db0 f Event
Handle 0000000000002db0
  Type          Event
  Attributes    0
  GrantedAccess 0x1f0003:
         Delete,ReadControl,WriteDac,WriteOwner,Synch
         QueryState,ModifyState
  HandleCount   2
  PointerCount  524289
  Name          <none>
  Object specific information
0:181>!处理2db0 f事件
句柄0000000000002db0
类型事件
属性0
授权访问0x1f0003:
删除、读控制、写控制、写所有者、同步
QueryState,ModifyState
HandleCount 2
指针计数524289
名称
对象特定信息
我发现有人用同样的命令获得了更多的信息

。。。
对象特定信息

事件类型自动重置使用。转储/mah不只是ma句柄信息不被/ma捕获

0:012> .dump /mah c:\mydumpu.dmp
Creating c:\mydumpu.dmp - mini user dump
Dump successfully written
0:012> .opendump c:\mydumpu.dmp

Loading Dump File [c:\mydumpu.dmp]
User Mini Dump File with Full Memory: Only application data is available

Opened 'c:\mydumpu.dmp'
||0:0:012> !handle 0 0 event
107 handles of type Event
||0:0:012> !handle 0 f event
Handle 2c
  Type          Event
  Attributes    0
  GrantedAccess 0x1f0003:
         Delete,ReadControl,WriteDac,WriteOwner,Synch
         QueryState,ModifyState
  HandleCount   2
  PointerCount  4
  Name          <none>
  Object Specific Information
    Event Type Auto Reset
    Event is Waiting
0:012>.dump/mah c:\mydumpu.dmp
正在创建c:\mydumpu.dmp-小用户转储
已成功写入转储
0:012>.opendump c:\mydumpu.dmp
正在加载转储文件[c:\mydumpu.dmp]
内存已满的用户小型转储文件:只有应用程序数据可用
已打开“c:\mydumpu.dmp”
||0:0:012> !处理0事件
107事件类型的句柄
||0:0:012> !处理0 f事件
手柄2c
类型事件
属性0
授权访问0x1f0003:
删除、读控制、写控制、写所有者、同步
QueryState,ModifyState
HandleCount 2
指针计数4
名称
对象特定信息
事件类型自动重置
事件正在等待

您所指的链接是内核转储,而您的链接是用户转储。我找不到它的任何参考,但我认为这就是区别所在。您可以使用sysinternals中的livekd`获取内核转储并重试。(请注意,导航KD与导航UD不同)该链接实际上是关于用户模式的
!处理
查询。同样在这里:-只要对象特定的信息可用,就应该显示它(而且应该显示,因为转储应该包含它)@brandon cuff是
!handle
输出真的在那个点被截断了,仅仅是“特定于对象的信息”?如果是这样的话,你能检查一下实时应用程序吗?此外,请遵循@lieven keersmaekers的建议-如果其他一切都失败,请尝试使用livekd查看内核方面。您使用的是哪个版本的WinDbg,以及哪个操作系统?对我来说,这在7x64 SP1、WinDbg 6.3.9600上运行。我使用的是Win7 x64 WinDbg 6.3.9600too@LievenKeersmaekers我只是在当地做了一个小测试。我使用
.dump/ma
转储了一个示例应用程序,后来在windbg中打开了它,它确实包含了我想要的信息。在本例中,转储来自使用相同版本的windbg的生产服务器。但是没有安装全套调试工具;我只是复制了windbg可执行文件本身来进行转储。(不确定这是否会产生影响)根据文档,
/ma
/mfFhut
的别名。在我的系统上,它也可以在没有
h
的情况下工作
0:012> .dump /mah c:\mydumpu.dmp
Creating c:\mydumpu.dmp - mini user dump
Dump successfully written
0:012> .opendump c:\mydumpu.dmp

Loading Dump File [c:\mydumpu.dmp]
User Mini Dump File with Full Memory: Only application data is available

Opened 'c:\mydumpu.dmp'
||0:0:012> !handle 0 0 event
107 handles of type Event
||0:0:012> !handle 0 f event
Handle 2c
  Type          Event
  Attributes    0
  GrantedAccess 0x1f0003:
         Delete,ReadControl,WriteDac,WriteOwner,Synch
         QueryState,ModifyState
  HandleCount   2
  PointerCount  4
  Name          <none>
  Object Specific Information
    Event Type Auto Reset
    Event is Waiting