Cloud9 IDE:debug C++应用程序
问题描述:
试图在Cloud9在线IDE中运行简单的C++应用程序。 我是远程gdb调试的新手(“远程 - 我不是指真正的远程调试,而是使用客户端/服务器调试,因为我看到实际上是本地调试,但无论如何,我看到使用gdbserver的runner配置和。GDB在同一主机上) 我使用设在社区论坛C++亚军,其中有从默认的C++亚军是建立使用的,而不是直接的g ++编译生成文件的唯一区别就在这里,它是:。Cloud9 IDE:debug C++应用程序
{
"script": [
"set -e",
"cd /home/ubuntu/workspace/build",
"make",
"chmod 755 \"my_app\"",
"if [ \"$debug\" == true ]; then ",
"gdbserver --once :15470 \"my_app\" $args",
"else",
"my_app $args",
"fi"
],
"info": "Running Project",
"debugport": 15470,
"debugger": "gdb",
"executable": "my",
"maxdepth": 50,
"$debugDefaultState": false,
"env": {},
"selector": "^.*\\.(cpp|cc)$"
}
当我使用启用调试运行时,我看到这个输出:
Running Project
....
[100%] Built target my_app
Process my_app created; pid = 25969
Listening on port 15470
Remote debugging from host 127.0.0.1
My Test Application
description of my test applciation
usage:
my_app [task_name] [task_parameters ...]
Child exited with status 1
GDBserver exiting
所以这是一个默认运行没有参数的应用程序,它只显示一个描述。但是它不会停在任何断点上。这是一个主要问题,我的问题在这里
从上面的输出,对我来说,目前还不清楚 - 是gdb成功连接到gdbserver或不是? 所以问题是在gdbserver和gdb之间的连接? 或在IDE中没有停止的断点? (我已经在很多地方设置了断点,包括描述输出之前/之后以及主函数的开始/结束处)
答
正如评论中所建议的那样,通过添加gcc标志来添加调试信息到构建,我的意思是
“的/ usr/bin中/ G ++ -ggdb3
其实我是用C9的构建和调试C++基于CMake的项目。 所以它的工作原理,没问题但需要一些努力来调整建设者和跑步者。 针对每个目标在cmake手动。它不是很有用,但可以使用
由于你的makefile没有显示。应用是否启用了调试符号? – Mutahhir
由cmake生成的makefile与-DCMAKE_Build_Type =调试 – amigo421
你是对的,需要调查由cmake生成的makefile,默认的C++模板工作正常,带有调试跟踪 – amigo421