我让Eclipse设置得非常好,可以通过Cygwin运行G ++编译器。甚至是the character encoding is set up correctly!
我的配置似乎还有问题:我无法调试。调试视图中的暂停按钮被禁用,我的应用程序树中没有出现任何线程。似乎gdb
根本就没有与Eclipse通信。
(imageshack) Debug view in Eclipse http://img265.imageshack.us/img265/4799/gdb1u.png
目前,我的调试设置如下:
调试器:“Cygwin gdb Debugger”
GDB调试器:gdb
GDB命令文件:.gdbinit
协议:默认
我应该在这里提一下,我不知道.gdbinit
做了什么;在我的项目中,它只是一个空文件。
我的配置有什么问题?
尝试在调试模式下终止应用程序时,Eclipse会显示以下错误:
目标请求失败:无法中断。
我也无法杀死这个过程;我必须杀死它的父gdb.exe
,这反过来会杀死我的申请。
正常运行时,会调用一堆kill.exe
,什么也不做,而Eclipse会显示以下错误:
终止失败。
我可以从任务管理器中删除FaceDetector.exe
。
这就是Process Explorer中的样子(左侧调试,右侧调试):
(imageshack) Process tree of Eclipse http://img707.imageshack.us/img707/4136/gdb3.png
答案 0 :(得分:2)
当eclipse作为普通用户运行时,您是否检查过这是否是将调试器附加到以root身份运行的应用程序的实例? (如this thread)
您是否尝试以管理员身份运行eclipse,只是为了检查问题是否仍然存在?
此外,comments says:
我花了一整天的时间来分析为什么我无法从日食中消除我的gdb 最后我发现路径中没有找到kill.exe ,eclipse使用它来发送
SIGINT
到cygwingdb
。 因此,如果有人能够使用eclipse和gdb
进行调试,并且无法暂停正在运行的调试目标,检查是否存在cygwin kill.exe 。
答案 1 :(得分:2)
我发现的唯一解决方法是直接从Cygwin启动Eclipse。
启动Cygwin Bash Shell,导航到Eclipse的安装目录,然后输入./eclipse.exe
。
CDT与Cygwin的通信方式似乎存在一些问题;传递标准输出并执行kill.exe
,但kill.exe
实际上不会成功终止应用程序,除非Eclipse通过Cygwin运行。通过gdb
进行调试会产生类似的问题;这也是通过解决方法解决的。
答案 2 :(得分:0)
基于评论和其他答案中的答案,如果我必须猜测,(假设您已经安装了足够的cygwin部分),您可能希望将cygwin bin目录添加到您的Windows路径中。要做到这一点,请转到我的计算机的属性,在其中一个选项卡上(我相信启动),可以选择设置环境变量。其中一个变量是PATH变量。将/ usr / bin目录的 windows 路径添加到该路径,eclipse应该能够找到kill。