【问题标题】:windbg/cdb hangs when bp hit当 bp 命中时,windbg/cdb 挂起
【发布时间】:2009-07-23 21:22:05
【问题描述】:

当我使用 cdb 或 windbg 进行调试并附加到我机器上的特定应用程序时,我遇到了一个问题,即 cdb 或 windbg 经常挂起,但并非一直挂起。

我发现这篇文章:http://www.nynaeve.net/?p=164 谈到了符号加载竞争条件是问题所在,但我可以强制加载符号,实际上在应用程序中有一个断点工作,并且仍然挂在其他地方。

当我使用另一个调试器附加到 cdb 时,这是来自 cdb 本身的堆栈:

ntdll!NtReadFile
kernel32!ReadFile
cdb!ReadNonConLine
cdb!ConIn
cdb!MainLoop
cdb!main

!analyze 报告说 APPLICATION_HANG_BusyHang 是问题桶,而“ReadNonConLine”是有问题的函数。

就堆栈而言:

ffffffff`fffffffe 00000000`00000000 00000001`3f641498 00000000`0014ea50 : kernel32!ReadFile+0x86
00000000`000002a4 00000000`0014ebb0 00000000`00001000 00000000`00000000 : cdb!ReadNonConLine+0x6d

ReadNonConLine 将 0014ebb0 处的字符串“g”作为参数传递,可能是我在悬挂断点处的命令的一部分(类似于 bp foo "dt a; g")

ReadFile 将句柄作为其第一个参数。我对 -2 的值感到惊讶,但它看起来并不有效。

感谢任何帮助。

谢谢! 亚伦

【问题讨论】:

    标签: windbg


    【解决方案1】:

    我正在使用 64 位工具调试一个 32 位应用程序,因此我决定切换到 32 位调试工具,从那以后我就再也没有挂起过。

    有问题的应用程序在图形上非常密集,我猜这是在调试环境中与 WoW64 交互不佳...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多