当bp命中时,windbg / cdb会挂起

时间:2009-07-23 21:22:05

标签: windbg

我遇到一个问题,cdb或windbg经常挂起,但不是所有的时候,当我用它调试并附加到我的机器上的特定应用程序时。

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

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

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

!分析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感到惊讶,但这看起来并不合适。

感谢任何帮助。

谢谢! 亚伦

1 个答案:

答案 0 :(得分:1)

我正在使用64位工具调试32位应用程序,所以我决定切换到32位调试工具,因为我没有挂起。

有问题的应用程序非常具有图形密集性,我猜测在调试环境中与WoW64的交互性很差......