2009-07-23 84 views
0

我遇到问题,cdb或windbg频繁挂起,但并非所有时候,当我使用它调试时,我附加到我的机器上的特定应用程序。当bp命中时,windbg/cdb挂起

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

这是国开行本身的堆栈,当我连接到它与另一个调试:

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具有字符串“G”在0014ebb0作为PARAM,其可以是我在悬挂断点命令的一部分传递(这是类似于bp foo“dt a; g”)

ReadFile将句柄作为其第一个参数。尽管如此,我对值-2感到惊讶,但这看起来并不合理。

任何帮助表示赞赏。

谢谢! Aaron

回答

1

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

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