2016-04-25 81 views
2

試圖在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中沒有停止的斷點? (我已經在很多地方設置了斷點,包括描述輸出之前/之後以及主函數的開始/結束處)

+0

由於你的makefile沒有顯示。應用是否啓用了調試符號? – Mutahhir

+0

由cmake生成的makefile與-DCMAKE_Build_Type =調試 – amigo421

+0

你是對的,需要調查由cmake生成的makefile,默認的C++模板工作正常,帶有調試跟蹤 – amigo421

回答

1

正如評論中所建議的那樣,通過添加gcc標誌來添加調試信息到構建,我的意思是

「的/ usr/bin中/ G ++ -ggdb3

其實我是用C9的構建和調試C++基於CMake的項目。 所以它的工作原理,沒問題但需要一些努力來調整建設者和跑步者。 針對每個目標在cmake手動。它不是很有用,但可以使用