为什么Netbeans在我的断点处不停止?

drkbr07n  于 2022-11-29  发布在  其他
关注(0)|答案(3)|浏览(262)

我在Netbeans 8.0.1上使用现有源代码和Makefile创建了一个C++项目。
我运行了build,它运行了Makefile,并构建了名为a.out的可执行文件。
问题是,当我在IDE中设置断点时,它不会在那里暂停。
问题是什么?
此站点上的其他问题都无法解决此问题。
生成文件:

CC=g++

build: foo.cpp foo.h main.cpp
    $(CC) foo.cpp foo.h main.cpp
bq3bfh9z

bq3bfh9z1#

我有时也会遇到这个问题。有几个可能的解决方案:
1.确保构建的是Debug版本,并且在构建时-g是编译器命令的一部分(默认情况下应该是这样,但必须仔细检查,特别是因为您似乎在使用自己的Makefile)。
1.重新启动NetBeans并执行干净构建。这可能会有所帮助。
1.直接使用gdb,而不是通过NetBeans GUI。根据我的经验,gdb总是可以工作,但NetBeans的调试不可靠,有时会出现我不知道的问题。出于这个原因,我大多使用良好的旧命令行调试器。

aor9mmx1

aor9mmx12#

-g选项是第一件事--确保它在编译行上。如果它仍然不起作用,那么直接运行gdb看看它是否起作用。如果有问题,gdb会吐出一个错误或警告,这在通过netbeans运行它时可能会被掩盖。例如:

gdb <progname>

并设置断点,例如

(gdb) break main

然后运行它:

(gdb) run

如果它在第一条语句上中断ok,但在netbeans中没有,那么就说明有其他问题。但是如果它运行到最后并发出警告,例如下面的re. missing packages:

Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.149.el6.x86_64

那么就按照它告诉你的去做。一旦gdb高兴了,netbeans也应该高兴了。

1l5u6lss

1l5u6lss3#

对于我的项目,NetBeans没有检测到的是项目属性中的一个错误属性值。我将项目构建设置为“Debug”,但在“Build”〉“C++ Compiler”〉“Development Mode”中,该值被设置为“Release”。这是我编辑属性时的错误。通过将其改回“Debug”,问题解决了。

相关问题