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

Configure netbeans 8.0 gdb to work with gradle cpp plugin

提问人:r.piesnikowski 提问时间:7/12/2014 最后编辑:r.piesnikowski 更新时间:12/20/2022 访问量:1077

问:

最近,我从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"
}

main.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 进程。我还在 NetBeans 的第 5 行中放置了断点,希望我能得到 gdb 输出。Attaching gdb Breakpoint from NetBeans

可悲的是,Netbeans 没有在编辑器区域遇到断点,我不知道为什么。我还打开了 Debbuger 控制台,并粘贴了日志 (pastebin) 以获取更多信息。

C++ 应用程序

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

对于该会话,我还上传了日志

我在日志中发现了一个区别:

  • 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 项目? 谢谢你的帮助。

C++ 调试 NetBeans Gradle GDB

评论

0赞 Ortomala Lokni 9/28/2015
您使用的是哪个 gradle cpp netbeans 插件?官方的 gradle netbeans 插件似乎只支持 Java。
0赞 Swift - Friday Pie 9/24/2023
demosntsrated 线路也是潜在的空操作,除非向 GCC 提供某些标志。未使用的局部变量初始化

答:

0赞 Jithin Vijayan 11/27/2015 #1

我认为build.gradle中存在问题,因此您必须检查gradle程序中使用的语法。http://gradle.org/getting-started-native/ 本网站包含一些示例。阅读它,解决你的问题。