2016-04-25 11 views
2

は、Cloud9オンラインIDEで単純なC++アプリケーションを実行しようとしました。 私は遠隔のgdbデバッグ(「リモート - 実際のリモートデバッグを意味するわけではありませんが、クライアント/サーバのデバッグを使用しているわけではありませんが、実際にローカルデバッグがありますが、とにかくgdbserverと同じホスト上のGDB) 私が代わりに直接G ++のコンパイルのメイクファイルを使用して構築する++ランナーCデフォルトの唯一の違いがあり、コミュニティフォーラムに設けられたC++ランナーを使用しているここにある:。。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にありますか? (説明の前/後とmain関数の開始/終了を含め、多くの箇所にブレークポイントを設定しています)

+0

あなたのメイクファイルは表示されていません。デバッグシンボルでビルドされたアプリは有効になっていますか? – Mutahhir

+0

メイクファイルはcmakeによって生成されました。-DCMAKE_Build_Type =デバッグ – amigo421

+0

cmakeによって生成されたメイクファイルを調べる必要があります。デフォルトのC++テンプレートがうまく動作し、デバッグトレースがあります。 – amigo421

答えて

1

コメントに示唆されているように、gccフラグを追加してデバッグ情報ビルドに、私は実際に私はcmakeのに基づいてビルドとデバッグC++プロジェクトのためのC9を使用していた

「は/ usr/binに/ G ++ -ggdb3

を意味する。 ので、それは動作しますが、問題ありませんビルダーやランナーを調整するには少しの努力が必要です。 手動でcmakeでターゲットを設定します。それほど役に立ちませんが、使用することができます

関連する問題