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应位于生成器文件中。对吗?你可以用它,但我认为用跑步者来构建然后运行一切也会很好。