最近我从 Windows 7 中的 Visual Studio 切换到带有 Netbeans 8.0 (C++) 的 Ubuntu。从那时起,我在从 NetBeans 调试我的应用程序时遇到了很大的问题(gdb 工作得很好)。我用 gradle 编写了 hello world c++ 来演示我的问题。我花了很多时间,但没有任何重大进展。
Gradle 项目
build.gradle:
apply plugin: 'cpp'
executables {
helloWorld
}
binaries.all {
cppCompiler.args "-g"
}
主要.cpp:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a = 10;
int b = 12;
int c = a + b;
puts("Hello World!!!");
return EXIT_SUCCESS;
}
然后我构建并运行 gdb:
robert-Aspire-S3:~/NetBeansProjects/helloWorld$ gradle helloWorldExecutable
robert-Aspire-S3:~/NetBeansProjects/helloWorld$ gdb ./build/binaries/helloWorldExecutable/helloWorld
....
Reading symbols from ./build/binaries/helloWorldExecutable/helloWorld...done.
(gdb) b 5
Breakpoint 1, main () at /home/robert/NetBeansProjects/helloWorld/src/helloWorld/cpp/main.cpp:5
5 int a = 10;
(gdb) n
6 int b = 12;
(gdb) print a
$1 = 10
(gdb) n
7 int c = a + b;
(gdb) c
Continuing.
Hello World!!!
[Inferior 1 (process 3693) exited normally]
下一步是从 Netbeans 8.0 附加到 gdb 进程。我还在第 5 行的 NetBeans 中放置了断点,希望我能得到 gdb 输出。
遗憾的是 Netbeans 没有在编辑器区域遇到断点,我不知道为什么。我还打开了 Debbuger Console 并粘贴了 logs (pastebin)了解更多信息。
C++ 应用程序
当我从 NetBeans 向导创建标准 C/C++ 应用程序 并尝试调试时,一切正常。
对于该 session ,我还 upload logs .
我在日志中发现了一个不同点:
- Gradle cpp:
10-file-symbol-file "/usr/bin/gdb"
- NetBeans cpp:
10-file-exec-and-symbols "/home/robert/NetBeansProjects/CppApplication_1/dist/Debug/GNU-Linux-x86/cppapplication_1"
所以 gradle 的那一行有问题吗? 如果是,我该如何解决? 谁能帮我将 NetBeans 可视化调试器附加到 gradle cpp 项目? 感谢您的帮助。
最佳答案
我认为是 build.gradle 中的问题,因此您必须检查 gradle 程序中使用的语法。 http://gradle.org/getting-started-native/该站点包含一些示例。阅读它可以解决您的问题。
关于c++ - 配置 netbeans 8.0 gdb 以使用 gradle cpp 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713995/