我在Netbeans 8.0.1上使用现有资源和Makefile
创建了一个C ++项目。
我运行了运行Makefile
罚款的构建并构建了名为a.out
的可执行文件。
问题在于,当我在IDE中设置断点时,它不会暂停。
问题是什么?
本网站上的其他任何问题都没有解决问题。
生成文件:
CC=g++
build: foo.cpp foo.h main.cpp
$(CC) foo.cpp foo.h main.cpp
答案 0 :(得分:6)
我有时也会遇到这个问题。有几种可能的解决方案:
-g
是构建时编译器命令的一部分(默认情况下应该是这样,但是你必须仔细检查,特别是因为你似乎在使用你的拥有Makefile)。gdb
,而不是通过NetBeans GUI。根据我的经验,gdb
始终有效,但NetBeans对于调试不可靠,并且由于我不知道的原因,有时会出现问题。因此我大多使用旧的命令行调试器。答案 1 :(得分:1)
-g选项是第一件事 - 确保编译行上的#。如果它仍然无法正常工作,那么直接运行gdb以查看它是否有效。如果出现问题,gdb会发出错误或警告,这可能会在通过netbeans运行时被遮挡。例如:
gdb <progname>
并设置断点,例如
(gdb) break main
然后运行它:
(gdb) run
如果它在第一个语句中打破了,但在netbeans中没有打破,则其他错误。但如果它运行到最后并发出警告,例如这个。缺少包裹:
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.149.el6.x86_64
然后就做它告诉你的事情。一旦gdb满意,netbeans也应该是。