cloud9ide:debug c++;应用 试图在Cyrd9在线IDE中运行简单的C++应用程序。 我是远程gdb调试的新手(“远程-我不是指真正的远程调试,而是使用客户机/服务器调试,正如我看到的,实际上有本地调试,但无论如何,我看到在同一主机上使用gdbserver和gdb的运行程序配置”)。 我使用的是C++论坛,它与社区论坛上的C++运行器有唯一的区别,它是用MaFIX文件而不是直接的G++编译生成的。 { "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)$" }
当我在启用调试的情况下运行时,我看到以下输出:cloud9ide:debug c++;应用 试图在Cyrd9在线IDE中运行简单的C++应用程序。 我是远程gdb调试的新手(“远程-我不是指真正的远程调试,而是使用客户机/服务器调试,正如我看到的,实际上有本地调试,但无论如何,我看到在同一主机上使用gdbserver和gdb的运行程序配置”)。 我使用的是C++论坛,它与社区论坛上的C++运行器有唯一的区别,它是用MaFIX文件而不是直接的G++编译生成的。 { "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)$" },c++,debugging,gdb,cloud9-ide,C++,Debugging,Gdb,Cloud9 Ide,当我在启用调试的情况下运行时,我看到以下输出: Running Project
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来构建和调试基于CGub的C++项目。 所以它可以工作,没有问题,但是需要一些努力来调整构建器和运行器。
手动针对cmake中的每个目标。它不是很有用,但是可以使用,因为没有显示您的makefile。是用启用的调试符号构建的应用程序吗?AcMcFilm是由CMAX生成的-DCMAMJuilBuildByTy= Debug,你需要调查一下CMAGE文件,它是由CGuy生成的,默认C++模板工作得很好,用调试跟踪我理解C9右-有两个配置文件-生成器和转轮,所以正确的方法是,一个运行程序应该只包含一个正在运行的命令,而不是make。Make/cmake/build/g++/etc应位于生成器文件中。对吗?你可以用它,但我认为用跑步者来构建然后运行一切也会很好。