中断されたプログラムを調べる
デバッガーセッションが 開始されると、 デバッグツールウィンドウが表示され、次のいずれかが発生するまでプログラムが正常に実行されます。
その後、プログラムは中断され、現在の状態を調べたり、実行を制御したり、実行時にさまざまなシナリオをテストしたりできます。
フレームとスレッド
プログラムの状態は フレームで表されます。 プログラムが中断されると、現在のフレームスタックが フレーム ペインに表示されます。

フレームはアクティブなメソッドまたは関数呼び出しに対応します。 呼び出されたメソッドまたは関数のローカル変数、その引数、式の評価を可能にするコードコンテキストを格納します。
関数。 が呼び出されるたびに、新しいフレームがスタックの先頭に追加されます。 関数。 の実行が完了すると、対応するフレームがスタックから削除されます(後入れ先出し方式)。
フレームを調べることで、特定のパラメーターがメソッドに渡された理由と、呼び出し時の呼び出し元の状態を理解できます。
モジュール名
テンプレート関数など、コードを別のモジュールにコンパイルできる場合があります。 モジュール名から、いつでもコードがどのバイナリで実行されているかを知ることができます。
フレーム ペイン内の任意の場所を右クリックし、 モジュール名を表示 を選択します。

モジュール名は、スタックフレームエントリごとに表示されます。

スレッド
アプリケーションスレッドのリストを移動できます。 スレッドの開始時に OS によって指定された ID は、関心のあるスレッドを識別できます。

「スレッド」アイコン
各スレッドの近くにあるアイコンは、スレッドのステータスを示します:
アイコン | 説明 |
|---|---|
中断状態の現在のスレッド。 | |
中断されたスレッド。 スレッドは、デバッガーによって一時停止されたときに一時停止としてマークされます。 |
個々のスレッドを解放 / 凍結解除する
CLion では、デバッグ中にスレッドを一時停止および再開できます。
メインメニューの デバッグツールウィンドウまたは のスレッドビューでコンテキストメニューを使用します。

氷結 ... および 解凍 ... – 現在選択されているスレッドを凍結および凍結解除します。
その他のスレッドを凍結 – 現在選択されているスレッドを除く他のすべてのスレッドをフリーズし、現在選択されているスレッドが以前にフリーズされていた場合はフリーズを解除します。
すべてのスレッドを凍結解除 – すべてのスレッドで実行を再開します。
スタックをクリップボードにコピー
現在のスレッドのコールスタックをコピーするには、 フレーム ペインの任意の場所を右クリックし、 スタックをコピー を選択します。
変数を調査および編集
変数 ペインには、選択した フレーム / スレッド内の変数のリストが表示されます。 変数を調べると、プログラムが特定の方法で動作する理由を理解できます。

専用の変数を表示するダイアログ
CLion では、専用のダイアログで変数をインスペクションできます。 これは、変数(または参照が保持されているオブジェクト)を追跡し、同時にフレームとスレッド間を移動できるようにする必要がある場合に便利です。
変数またはウォッチを右クリックし、 インスペクト を選択します。

変数値を設定
プログラムが特定のデータでどう動作するかをテストしたり、実行時にフローを変更したりしたい場合は、変数値を変更することで実現できます。
変数を選択し、 F2 を押します。 または、コンテキストメニューから 値を設定 を選択します。
変数の値を入力し、 Enter を押します。

または、 インラインヒントポップアップを使用して変数値を設定することもできます。 目的の変数に対応するヒントをクリックし、必要に応じてツリーを展開して、 値を設定 を選択します。

instance="rm"/>
配列として表示
配列として表示 アクションは、ポインター値を配列としてレンダリングするウォッチポイントを追加します。
ポインタ変数のコンテキストメニューから 配列として表示 を選択します。
配列サイズを指定します。

選択したポインタの配列表現がリストまたは変数に追加されます。

OpenCV イメージを表示
cv::Mat 型の 2 次元 OpenCV 配列を含むアプリケーションをデバッグする場合、別のデバッガーダイアログでイメージとして表示できます。
デバッグが開始され、OpenCV 配列が初期化されたら、デバッガーの 変数 ペインで変数の横にある イメージとして表示 をクリックします。

新しいダイアログが開きます:

このダイアログから、画像のカラーフォーマットの変更や、デバッガーのステップ実行後に画像を再読み込みするかどうかの選択、.png ファイルとして保存などができます。

他のイメージタイプを表示
cv::Mat 以外のイメージタイプを扱っている場合は、OpenCV イメージビューアーを使用してイメージとして表示することもできます。 この場合、イメージ形式を手動で設定する必要があります。 次に例を示します。
このイメージを表示するには、 変数 ペインでポインターを右クリックし、コンテキストメニューから 画像として表示… を選択します。

イメージの幅、高さ、その他のパラメーターを手動で設定します。

ソースコードに移動する
変数 ペインから宣言に移動できます。
変数が宣言されているコードに移動するには、変数を右クリックして ソースに移動 F4 を選択します。
変数型のクラス宣言に移動するには、変数を右クリックして 型ソースに移動 Shift+F4 を選択します。
式の評価
CLion を使用すると、デバッグセッション中に式を評価して、プログラムの状態に関する追加情報を取得したり、実行時にさまざまな動作シナリオをテストしたりできます。
この機能は、プログラムがブレークポイントに到達した後に中断された(一時停止されていない)場合にのみ機能します。
式内で呼び出されるメソッド内にブレークポイントがある場合、それらは無視されます。
エディターで簡単な式を評価する
式をすばやく評価するには、エディターで式をポイントします。 関数呼び出しはこの方法では評価できないことに注意してください。
評価する式をポイントします。 式の結果がツールチップに表示されます。

結果のオブジェクトの子要素を表示するには、
をクリックするか、 Ctrl+F1 を押します。

値のツールチップが邪魔になる場合は、遅延を増やすか、完全に無効にすることができます。 これを行うには、 設定 ダイアログ (Ctrl+Alt+S) で に移動し、好みに応じて 値ツールチップを表示 および 値ツールチップの遅延 オプションを設定します。
エディターで複雑な式を評価する
メソッド呼び出しを含むコード内の式を評価したり、評価したい式の一部を指定したりする場合は、 式のクイック評価 オプションを使用してください。
式を選択して Ctrl+Alt+F8 を押すか、表示されるフローティングツールバーから 式の評価 を選択します。

あるいは、 に移動するか、 Alt を押したまま選択範囲をクリックします。
式のクイック評価 を構成して、コードを選択するだけで(メニュー / ショートカットを使用せずに)コードで機能するようにできます。 このオプションを有効にすると、誤ってメソッドを呼び出す可能性があるため、慎重に使用してください。
コード選択時に式を評価する
に移動し、 コード選択時に値ツールチップを表示する オプションを設定します。
任意の式を評価する
任意の式を評価することは、最も柔軟な評価オプションです。 現在のフレームのコンテキスト内にある限り、任意のカスタムコードを評価できます。 これを使用すると、宣言、メソッド呼び出し、匿名クラス、ラムダ、ループなどを評価できます。
現在目の前にある式または変数 (たとえば、エディターまたは 変数 ペイン) から開始する場合は、それを選択します。
Alt+F8 に移動するか、コンテキストメニューから 式の評価 を選択します。 ショートカットは Ubuntu では機能しない可能性があります (正しく操作するには、 ショートカット設定を調整してください)。
「評価 」ダイアログで、選択した式を変更するか、「式 」フィールドに新しい式を入力します。 複数行のコードフラグメントを変更するには、「展開 Shift+Enter 」をクリックします。
評価 (複数行モードの場合は Ctrl+Enter )をクリックします。 式の結果が 結果 フィールドに表示されます。

式の結果は、return ステートメントから取得されます。 return ステートメントがない場合、結果はコードの最後の行から取得されます(式でなくても、リテラルだけでも動作します)。 値を取得する有効な行がない場合、結果は
未定義です。 指定された式を評価できない場合、 結果 フィールドに理由が示されます。
評価 ダイアログは非モーダルなので、フォーカスをエディターに戻して他の変数や式をコピーすることができます。 また、複数の 評価 ダイアログを開くこともできます。
インラインで値を表示
CLion は、変数の使用箇所のすぐ隣に変数の値を表示します。 変数値が変更されると、インラインビューは新しい値で更新され、色が変わります。
インラインヒントをクリックして展開すると、変数に属するフィールドを調べることができます。 このポップアップから、 変数値を変更したり インラインウォッチを追加したりすることもできます。

インラインビューはデフォルトで有効になっています。 これをオフにするには、 設定 ダイアログ (Ctrl+Alt+S) で に移動し、 値をインラインで表示する オプションを無効にします。
インラインウォッチを追加する
ある式の結果を特定の行に表示したい場合は、そのためのインライン ウォッチを設定できます。 インラインウォッチは永続的であり、セッションの再開後もアクティブなままです。
フィールドを追跡するオブジェクトを参照するインラインヒントをクリックします。
ポップアップで、フィールドを選択し、 インラインウォッチとして追加 をクリックします。

必要に応じてウォッチを微調整します。 有効な式をウォッチとして使用できます。

Enter を押すと、インラインウォッチが同じ行に表示されます。

エディターで設定したインラインウォッチは、 デバッグ ツールウィンドウの変数ペインの インラインウォッチ にも表示されます。

インラインウォッチを削除するには、ウォッチの上にカーソルを合わせて、近くの十字をクリックします。
ウォッチ式
変数またはより複雑な式の結果を追跡したい場合は、この変数または式の監視を設定します。 これは、変数のリストに定期的に表示されないものを評価する必要がある場合や、インスタンス変数を固定する必要がある場合に便利で、各 ステップの後にツリーを展開する必要がなくなります。
この機能は、プログラムがブレークポイントに到達した後に中断された(一時停止されていない)場合にのみ機能します。
ウォッチは、選択したフレームのコンテキストで評価されます。 ウォッチは、コンテキストから外れている場合、またはコンパイルに失敗した場合は評価できません。 この場合、ウォッチにはエラーアイコン のマークが付けられます。
デフォルトでは、監視は変数とともに 変数 ペインに表示されます。 ウォッチ式 ペインを表示 / 非表示にするには、 レイアウト設定 メニューの ウォッチを個別に表示 オプションを使用します。
ウォッチを追加する
「変数 」ペインの上部に式を入力し、「ウォッチに追加 」をクリックします。

ウォッチ式 に変数 / 式を追加した後、変数 / 式はそこに残り、各 ステップで評価され、現在のコンテキストで結果を提供します。
ウォッチを編集する
目的のウォッチを右クリックして、 編集 を選択します。
ウォッチを削除する
単一の監視を削除するには、それを右クリックして ウォッチ式を除去 を選択します。 または、ウォッチを選択し、 変数/ウォッチ式 ペインで Delete を押します。
すべての監視を削除するには、 変数/ウォッチ式 ペインの任意の場所を右クリックし、 すべてのウォッチ式を除去 を選択します。
ウォッチは、変数と同じアクションを可能にします。 たとえば、 専用のダイアログで表示したり、それを使って ソースコードへ移動したりできます。
ウォッチはプロジェクトの一部です。 これは、デバッグセッションを失うリスクなしに、デバッグセッションを停止して再実行できることを意味します。
実行ポイント
現在の実行ポイントに戻る
プログラムの状態を調べるにはコード内を移動することが必要で、多くの場合、プログラムが中断されている場所に戻る必要があります。
次のいずれかを実行します:
メインメニューで へ移動します。
Alt+F10 を押す。
デバッグ ツールウィンドウのステップツールバーで
をクリックし、開いたコンテキストメニューから
実行ポイントの表示 を選択します。
現在の実行ポイントは青い線で示されます。 この行のコードはまだ実行されていません。
