c++ - 配置 netbeans 8.0 gdb 以使用 gradle cpp 插件

标签 c++ debugging netbeans gradle gdb

最近我从 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 输出。 Attaching gdb Breakpoint from NetBeans

遗憾的是 Netbeans 没有在编辑器区域遇到断点,我不知道为什么。我还打开了 Debbuger Console 并粘贴了 logs (pastebin)了解更多信息。

C++ 应用程序

当我从 NetBeans 向导创建标准 C/C++ 应用程序 并尝试调试时,一切正常。 Cpp debugger

对于该 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/

相关文章:

c++ - 对于迭代器和类似情况应该如何处理 'Invalid covariant return types'

java - Android Eclipse Java 调试关于识别空对象比较的问题

c++ - portaudio 只采集一份样本?

java - 运行时执行不显示结果

c++ - 我在哪里可以找到 IOCTL 常量值?

c++ - 如何让 wstring_convert::to_bytes 抛出 range_error 异常?

C++ 转发函数调用

python - 输入每个命令后如何在python pdb中显示 'l'的输出

netbeans - NetBeans 在哪里创建 Derby Embedded DB

java - 如何从现有代码生成表单文件?