コアダンプのデバッグ
CLion は、コアダンプ (英語)(macOS、Linux) およびミニダンプ (Windows) ファイルを使用した事後デバッグをサポートしています。これらのファイルは、プログラムがクラッシュしたり異常終了した時点でシステムによってキャプチャーされたプロセスメモリのコピーです。
使用可能なデータはクラッシュ時のメモリスナップショットのみであるため、プログラムをステップスルーすることはできませんが、対応するソースコード、フレーム、変数を調べることはできます。メモリビュー、逆アセンブリビュー、およびデバッガーコンソールも使用できます。
コアダンプデバッグセッションを構成する
次のいずれかのオプションを使用します。
メインメニューから
を選択するか、 (Ctrl+Shift+A)からこのアクションを呼び出します。プロジェクトにコアダンプデバッグ構成がない場合は、コアダンプを開くダイアログがすぐに表示されます。それ以外の場合は、ポップアップメニューから新しいコアダンプを選択します。
ステップ 2 の指示に従います。
コアダンプのデバッグ構成を手動で作成します。実行 | 実行構成の編集に移動し、
をクリックして、テンプレートのリストからコアダンプのデバッグを選択します。
以下の設定を構成します。
デバッガー
使用するデバッガーを選択します: バンドルされた LLDB、バンドルされた GDB、ツールチェーンの GDB、カスタム外部 GDB。
デフォルトのデバッガーは、デフォルトのツールチェーンが LLDB で構成されている場合はバンドルされた LLDB であり、それ以外の場合はバンドルされた GDB です。
コアダンプ
コアダンプファイルへのパスを指定するか、ファイルチューザーを使用してパスを選択します。ファイルに読み取りアクセス許可があることを確認してください。
シンボルファイル (LLDB の場合はオプション、GDB の場合は必須)
CLion がプログラムシンボルを正しく識別し、適切なソースコードの場所に移動するには、シンボルファイルが必要です。これは、デバッグ情報を含むプログラムのバイナリビルド、または個別のシンボルファイルの場合があります。
デバッグ情報なしでビルドされたリンクライブラリのシンボルは、関連するデバッグシンボルがデフォルトの検索ディレクトリにある場合にのみ使用できることに注意してください。
LLDB は、選択したコアダンプに対応するバイナリを検出できます。
ただし、調査したクラッシュがデバッグシンボルのないバイナリで発生した場合は、LLDB に明示的に提供する必要があります。このために、バイナリのストリップされていないバージョンまたは別のシンボルファイルへのパスを指定します。
GDB の場合、ストリップされていないバイナリまたは別のシンボルファイルを手動で指定する必要があります。
Sysroot
デフォルト以外の場所にライブラリがある別のシステムでバイナリビルドからコアダンプをデバッグする場合は、
sysroot
パスを指定します。パスマッピング
バイナリが異なるファイル / ディレクトリ名またはパスを持つ別のマシンでビルドされた場合は、このペインを使用してパスマッピングを設定します。
コアダンプセッションを開始する
コアダンプを開くアクションの場合、CLion は対応する構成を作成し、それを自動的に起動します。
プロジェクトに既存の構成があるときにコアダンプを開くを呼び出すと、新しい構成を作成するオプションとともにそれらのリストが開きます。
コアダンプのデバッグ構成を手動で作成した場合は、スイッチャーでそれを選択し、
(Shift+F9)を押します。
コアダンプのデバッグプロセス
コアダンプデバッグセッションを開始すると、CLion は対応するソースコードとデバッグツールウィンドウを自動的に開きます。通常のデバッグセッションと同様に、フレームタブと変数ペイン、およびメモリビューと逆アセンブルビューを使用できます。デバッガーコマンドを実行するためのデバッガーコンソールも利用できます。
![コアダンプのデバッグ Core dump debugging](https://resources.jetbrains.com/help/img/idea/2024.1/cl_debugcoredump_process.png)
現在の問題と制限
リモートコアダンプのデバッグは現在開発中です(CPP-22656(英語)、CPP-24333(英語))。
macOS では、バンドルされた GDB がフォーマットを認識するコアファイルハンドラーはありませんエラーで開始できない場合があります。これは、macOS 上の GDB の既知の問題(英語)です。
式の評価の機能を制限することができます。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_debugger_stepout_returnvalue.png)
ステップスルー
CLion は、さまざまなデバッグ戦略のための一連のステップアクションを提供します(たとえば、次の行に直接移動する必要があるか、途中で呼び出された関数を入力する必要があるかなど)。ステップアクションは、デバッガーウィンドウのツールバーとメニューにあります。ステップオーバー:現在の行に関数呼び出しが含まれている場合でも、現在の行をステップオーバーして、次の行に移動します。呼び出しはスキップされ、発信者の次の行に直接移動します。ステップオーバーボタンをクリックするか、を押します。スキップされたメ
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_memview_contextmenu.png)
メモリビュー
たとえば、データ処理の問題をデバッグするときに、実行中のプロセスの未加工メモリを表示する必要がある場合があります。このため、CLion はメモリビューを提供します。変数タブのポインタから、必要なアドレスを含むメモリ領域に移動し、プログラムのステップ実行とともに変更を確認できます。メモリビューを表示デバッグツールウィンドウの変数タブで、目的のポインタ変数を選択します。を押すか、変数のコンテキストメニューからメモリビューで表示を選択します。このオプションは、非ポインター変数でも使用できます。変数のア...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_disasm_ondemand_framesmenu.png)
逆アセンブルされたコードをデバッグする
デバッグセッション中に、逆アセンブルされたコードを開くことができますソースが利用可能な場合、任意のフレームに対してオンデマンド、ソースが利用できないときに強制的にそこに踏み込むこと、フレームの分解ビューを開くデバッグツールウィンドウで目的のフレームを右クリックし、逆アセンブルを選択します。逆アセンブリビューがソースコードと並んで開きます。開くと、分解ビューは現在選択されているフレームと同期したままになります。フレームが切り替わると、エディターと逆アセンブリビューの両方が実行ポイントまでスクロール...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_gdb_consolecompletion.png)
デバッガーコンソール
デバッグセッション中に、CLion から GDB/LLDB コンソールに直接アクセスできます。デバッグツールウィンドウで、LLDB または GDB とマークされたタブを開きます。このタブには、デバッガーの出力 / エラーストリームが表示され、GDB/LLDB コマンドを実行できます。デバッガーコンソールへのクイックスイッチ(デバッグセッション中のみ使用可能)。デバッグツールウィンドウが非表示の場合、このアクションはそれを開き、デバッガーコンソールタブに焦点を合わせます。または GDB または LLDB が...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_debugcoredump_settingsconfig.png)
実行 / デバッグ構成: コアダンプのデバッグ
このページを使用して、コアダンプのデバッグのオプションを構成します。共通設定:実行構成を編集するとき(ただし実行構成テンプレートは編集しないとき)、次のオプションを指定できます。名前実行構成の名前を指定して、編集または実行時に他の構成の間ですばやく識別できるようにします。複数のインスタンスを許可するこの実行構成の複数のインスタンスを並行して実行できるようにします。デフォルトでは無効になっており、別のインスタンスがまだ実行されているときにこの構成を開始すると、CLion は実行中のインスタンスを...
![](https://resources.jetbrains.com/help/img/idea/2024.1/cl_debuggers_switch.png)
デバッガーオプション
CLion では、macOS/Linux の LLDB および Windows/Linux の GDB を使用して C/C++ 実行可能ファイルをデバッグできます (macOS の GDB を使用したデバッグは、カスタム GDB バイナリでのみ可能です)。また、Windows には MSVC ツールチェーン用の LLDB ベースのデバッガーがあります。バンドルされたデバッガーの現在のバージョン:、macOS および Linux 用 LLDB v 17.0.6、Windows 上の MSVC ツールチェーン...