任意の実行可能ファイルをデバッグする
CLion を使用して、任意のビルドシステムを使用して他の場所でビルドされた実行可能ファイルをデバッグできます。この記事では、アプリケーションに応じて選択できる 3 つのオプションについて説明します。どちらを使用しても、すべての CLion デバッグ機能がコードで完全に利用可能になります。要件は、バイナリにデバッグシンボルが含まれていて、ソースファイルが手元にあることです。
オプション 1: 実行中のプロセスにアタッチする
最も簡単な解決策は、デバッガーをすでに実行中のプロセスに接続することです。これは、さまざまなサービスのように、無期限に実行できるアプリケーションに適しています。
メインメニューから
を選択し、ソースファイルを開きます。ブレークポイントを設定し、プロセスにアタッチした後にブレークポイントがヒットすることを確認します。
プロセスを起動します。これは、IDE の外部で、または内蔵ターミナル( または Alt+F12)を使用して実行できます。
CLion では、メインメニューから実行 | プロセスにアタッチを呼び出すか、Ctrl+Alt+F5 を押します。
エントリのリストで、プロセスを検索します。
デバッガーが正常に接続されると、通常どおりデバッグできるようになります。詳細については、「デバッグ」セクションを参照してください。
終了したら、デバッグツールウィンドウで
を呼び出すか、ツールバーまたはをクリックして、プロセスから切り離します。
オプション 2: 偽の CMake プロジェクトをデバッグする
もう 1 つのオプションは、基本的な CMake プロジェクトを作成し、CMake アプリケーション構成を使用して外部実行可能ファイルをデバッグすることです。
ウェルカム画面の新しいプロジェクトをクリックするか、メインメニューから を選択してください。
C/C++ テンプレートのいずれかを選択し、プロジェクトの名前を指定して、作成をクリックします。
CLion は、デフォルトの実行 / デバッグ構成でスタブプロジェクトを生成します。その構成を使用するか、CMake アプリケーションテンプレートから新しい構成を作成できます。
に移動します。構成設定で、実行可能ファイルのパスを設定します。
設定を適用します。
メインメニューから
を使用してバイナリのソースを開きます。ソースを移動し、ブレークポイントを設定します。
CLion は、ファイルがプロジェクトに属していないという警告を表示します。ビルドシステムとして CMake を使用していないため、これらの警告は無視してかまいません。
準備ができたら、手順 4 で設定した構成のデバッグセッションを開始します。
オプション 3: カスタムビルドアプリケーションをデバッグする
より本格的な代替手段として、CLion のカスタムビルドターゲットを使用します。これは、さまざまな種類の C/C++ アプリケーションのビルドと実行 / デバッグをセットアップする方法です。デバッグ、またはビルド、クリーンアップ、デバッグの完全なチェーンを構成できます。
デバッグ用のカスタム構成を作成する
メインメニューから
を使用して、CLion のソースファイルを開きます。ソースを移動し、ブレークポイントを設定します。
メインメニューで、
に移動し、をクリックして、テンプレートのリストからカスタムビルドアプリケーションを選択します。
まず、実際のビルドが実行されない場合でも、ビルドターゲットを指定する必要があります。これが必要なのは、ビルドターゲットがデバッガーの取得元のツールチェーンを定義するためです。
カスタムビルドターゲットを構成するをクリックします。開いたダイアログで、
をクリックして新しいターゲットを追加します。ターゲットの名前を指定し、他のフィールドは空のままにします。
ターゲットを保存して、構成設定に戻ります。
ターゲットフィールドで作成したビルドターゲットを選択します。
CLion は、構成の編集ダイアログの下部に警告を表示します。デバッグの目的で、この警告は無視できます。
実行可能ファイルフィールドにアプリケーションバイナリを指定します。
構成を保存し、デバッグセッションを開始します。
カスタムビルドターゲットを構成する (さらに)
デバッグ用のカスタム構成に加えて、プロジェクトのビルド / クリーンツールをセットアップすることもできます。
Meson ビルドシステムを例として取り上げます。
に移動し、をクリックして新しいターゲットを追加します。
ビルド / クリーンツールを設定します。必ず適切な作業ディレクトリを指定してください。
この例では、ビルドツールの名前は Meson_build であり、buildir ディレクトリの
meson compile
を呼び出します。ターゲットフィールドで新しく作成されたカスタムターゲットを選択します。
に移動し、この構成をデバッグすると、最初に指定されたツールを使用してプロジェクトがビルドされます。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_attachprocess_name.png)
プロセスに接続
CLion は、ローカルプロセスとリモートプロセスの両方にデバッガーを接続する方法を提供します。C/C++ アプリケーションの場合、Windows では GDB または MSVC LLDB、macOS では LLDB、Linux では GDB と LLDB の両方を使用してプロセスにアタッチできます。該当する場合は、他の言語のデバッガー (Python デバッガーなど) も使用できます。Ubuntu の前提条件 Ubuntu およびその他の Linux ディストリビューションでは、初めてプロセスに...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_exception_breakpoint_setting.png)
ブレークポイント
ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、たとえば、特定のコード行に到達したときにプログラムを一時停止するなどの単純なものから、追加の条件をチェックしたり、ログに書き込んだりするなどのより複雑なロジックを含むものまであります。ブレークポイントは、一度設定すると、一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。ブレークポイントの種類:CLion
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_terminal_sessions.png)
ターミナルエミュレータ
CLion には、IDE 内からコマンドラインシェルを操作するための組み込みターミナルエミュレータが含まれています。専用のターミナルアプリケーションに切り替えることなく、Git コマンドの実行、ファイルのアクセス許可の設定、その他のコマンドラインタスクの実行に使用します。ターミナルプラグインを有効にするこの機能は、デフォルトで CLion にバンドルされて有効になっているターミナルプラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を...
![](https://pleiades.io/icons/clion.png)
デバッグ
デバッグセッション中、デバッガーはプログラムの実行を妨害し、内部で何が起こっているかに関する情報を提供します。CLion でのデバッグの基礎については、このビデオを参照してください。一般的なデバッグ手順デバッガー設定を構成します。CMake プロジェクトの場合、目的の CMake プロファイルを選択します。必要に応じて、既存の実行 / デバッグ構成を作成または変更します。コードにブレークポイントを配置します。デバッグ <構成名> ボタンをクリックするか、他のオプションを使用してデバッグセ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_debugtoolwindow_overview.png)
デバッグツールウィンドウ
デバッグセッションを開始すると、デバッグツールウィンドウが開きます。このウィンドウでは、さまざまなデバッガーアクションを実行し、プログラムデータ(フレーム、スレッド、変数など)を分析できます。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。ツールウィンドウのタブを切り替えるには、とを押します。セッション:使用可能なデバッグセッションは、デバッグツールウィンドウの上部でタブに分割されています。特定の実行 /
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_cmakeapp_config_settings.png)
実行 / デバッグ構成: CMake アプリケーション
この構成テンプレートを使用して、CMake ターゲットを実行またはデバッグします。共通設定:実行構成を編集するとき(ただし実行構成テンプレートは編集しないとき)、次のオプションを指定できます。名前実行構成の名前を指定して、編集または実行時に他の構成の間ですばやく識別できるようにします。複数のインスタンスを許可するこの実行構成の複数のインスタンスを並行して実行できるようにします。デフォルトでは無効になっており、別のインスタンスがまだ実行されているときにこの構成を開始すると、CLion は実行中の...