GNU/Linux >> Linux の 問題 >  >> Linux

C/C++ デバッグのために Eclipse で GDB を使用するにはどうすればよいですか?

次の手順は、Eclipse 3.5 (Galileo) 用です。 3.6 (Helios) の場合は、手順 2 のリンクを除いて類似しています。

<オール>
  • [ヘルプ]> [新しいソフトウェアのインストール] に移動します。
  • CDT リポジトリ http://download.eclipse.org/tools/cdt/releases/galileo をリポジトリのリストに追加します。
  • CDT リポジトリを選択します。ここで、使用可能なプラグインのリストから GDB サポートとともに CDT プラグインをインストールする必要があります (CDT のメイン機能と CDT GNU ツールチェーンのデバッグ サポートを選択します)。
  • Eclipse でブレークポイントを設定し、変数の値を検査できるようになりました。

    別の方法は、DDD (GDB の GUI フロントエンド) をインストールすることです。


    最初に Eclipse CDT をダウンロードし、次のようにプロジェクトを Eclipse にインポートできることを確認します:How to create a project from existing source in Eclipse and then find it?

    次の簡単なテスト ディレクトリでテストしてみてください。

    git clone https://github.com/cirosantilli/ide-test-projects
    cd ide-test-projects/cpp
    make
    ./main.out
    

    ここで、Eclipse に標準ライブラリ シンボルの検索方法を指示することも必要になるでしょう:「C 標準ライブラリ ヘッダーの Eclipse CDT での "未解決の包含" エラー」で説明されています。

    Eclipse がプロジェクトをインポートすると、たとえば定義などにジャンプできそうなので、GDB ステップデバッグを設定しましょう。

    まず、下に移動する必要があります:

    • 走る
    • 実行構成
    • C/C++ アプリケーション
    • cpp デフォルト (「cpp」はプロジェクト名)
    • C/C++ アプリケーション

    次のように設定します:

    main.out
    

    これで、Eclipse はプログラムの実行方法を認識しました。テスト実行を行うことで確認できます:

    • 走る
    • 実行 (Ctrl + F11)

    下部のターミナルには、プログラムの出力が表示されます:

    最後に、任意のポイントにブレークポイントを設定できます。 main コードの左側にあるサイドバーをダブルクリックすると、青い円が作成されます (上の画像を参照)。

    これでデバッグできます:

    • 走る
    • デバッグ (F11)

    予想通り main のままです :

    (void)argv; 上の水色の線 これがデバッガーで実行されている現在の行であることを示します。

    そこからは、デバッグ インターフェイスを学習するだけです。例:

    • [実行] の下に表示されるようになった、ステップ オーバーするための F6 などのショートカット (デバッグを開始した場合にのみ表示されます)
    • 右側の「変数」の下に変数値を表示
    • [実行]> [終了] (Ctrl + F2) で実行を停止
    • 引数をプログラムに渡す:Eclipse コマンド ライン引数

    その後、Ctrl + F8 で通常のコード ビュー (非デバッグ) に戻すことができます。 デバッグが完了したら:Eclipse でデバッグされたプロセスを終了した後、パースペクティブを元に戻すには?

    Eclipse 2020-03 (4.15.0) でテスト済み。


    Linux
    1. 自動化のためにAnsibleとanacronを使用する方法

    2. ユーザー定義のセッションにLightdmを使用する方法は?

    3. Linux 用の C++ gdb GUI はありますか?

    1. 大規模なLinuxバックアップに高度なrsyncを使用する方法

    2. Linuxシステムリカバリにsystemd-nspawnを使用する方法

    3. Eclipse GUI を使用した C++ アプリケーションのリモート デバッグ

    1. 行番号情報を含む gcc を使用して C++ のスタック トレースを取得するにはどうすればよいですか?

    2. 別の C++ プログラム内で C++ プログラムを実行する方法は?

    3. Eclipse の gcc C++ コンパイラのバージョンを確認するにはどうすればよいですか?