在Eclipse CDT(Helios)中使用Cygwin gdb进行调试的问题

问题描述:

我试图调试一个使用Eclipse CDT和cygwin gdb的应用程序,并且如果我的代码调用Sleep(),我会遇到问题,它看起来像是在代码中遇到睡眠调试器似乎进入一个无限循环(我的意思是它永远不会终止或睡眠后打到一个断点)
按暂停时,代码卡在sigint::interrupt上的其中一个线程上。
即使我的调试器控制台窗口在控制台输出抛出这些错误:在Eclipse CDT(Helios)中使用Cygwin gdb进行调试的问题

[New thread 5968.0x1f98] 
Error: dll starting at 0x774a0000 not found. 
Error: dll starting at 0x775c0000 not found. 
[New thread 5968.0x19e8] 

任何想法是关于这些错误?

如果有人能够帮助我,这将是有益的,因为我是新的日食,我习惯于使用VS,所以它变得懒惰诚实,并期望事情工作出现问题。

这里有必要时

  • 的Windows 7 64位的更多细节。
  • Eclipse 3.6带有从CVS头编译的CDT插件的Helios。
  • 从Cygwin的网站最新的,我认为这是1.71

有在this issue一个few threads,但不会有太多。
可能因为它不是一个CDT问题,而是一个gdb issue

所以你需要比较使用的确切gdb版本和gdb bugs database,你可以browse here

例如,有这样的critical bug 11031“gdb终止时试图设置C++异常断点”,它可能是相关的(但未解决)。

+0

感谢VonC我用7.0版本取代了我的gdb 6.8版本,现在它似乎可以正常工作,但它似乎颇具气质。几次它没有终止,但大多数时候它完美地工作。 – Rohan 2010-05-21 21:18:35

+0

但我仍然得到以下error.Any知道该怎么做这些错误意味着 [新线程5968.0x1f98] 错误:DLL开始0x774a0000没有找到。 错误:DLL找不到0x775c0000。 [新主题5968.0x19e8 – Rohan 2010-05-21 21:23:26

+0

@Rohan:没有直接的线索。从那里,这真的与您的特定环境相关联(例如,在此线程中:http://code.google.com/p/msysgit/issues/detail?id = 391 - 通过VM运行Windows 64位的用户) 。这不是你的情况,但你必须有一些你自己的特殊配置,这与gdb不兼容。 – VonC 2010-05-21 22:03:39

通过安装GDB 7.1解决了问题。老版本的GDB似乎不支持64位。

我升级到7.2 gdb的和并获得在CDT控制台以下错误:

错误:DLL开始0x76e30000没有找到。 错误:找不到从0x76090000开始的dll。 错误:DLL找不到0x76e30000。 错误:找不到0x76f50000开始的dll。

我也使用Windows 7 64位和最新的Cygwin。我在普通的shell中试过调试器,它工作正常。我可以调试我的应用程序。