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

フレームはアクティブなメソッドまたは関数呼び出しに対応します。 呼び出されたメソッドまたは関数のローカル変数、その引数、式の評価を可能にするコードコンテキストを格納します。
フレームの概念をより深く理解するために、プログラムの実行時に何が起こるかを見てみましょう。 プログラムの実行は main メソッドから始まり、次に他のメソッドが呼び出されます。 これらの各メソッドは、追加のメソッド呼び出しを行う場合があります。 各メソッド呼び出しのローカル変数とパラメーターのセットは、フレームによって表されます。
メソッド が呼び出されるたびに、新しいフレームがスタックの一番上に追加されます。 メソッド の実行が完了すると、対応するフレームがスタックから削除されます(後入れ先出し方式)。
フレームを調べることで、特定のパラメーターがメソッドに渡された理由と、呼び出し時の呼び出し元の状態を理解できます。
スタックをクリップボードにコピー
現在のスレッドのコールスタックをコピーするには、 フレーム/ タブの任意の場所を右クリックして、 スタックをコピー を選択します。
1 つのタブでフレームを連続してプレビューする
プレビュータブでは、1 つのタブでファイルを連続して開くことができます。 このようにして、別々のタブで開いている複数のファイルでエディターが乱雑になるのを防ぎます。
デバッグ中に開かれるファイルのプレビューモードを有効にするには、 Ctrl+Alt+S を押して設定を開き、 に移動して、 プレビュータブを有効化 チェックボックスを選択します。
オブジェクトの型を非表示にする
オブジェクト型が デバッグ ツールウィンドウであまりにも多くのスペースを占める場合は、変数を右クリックして、表示されるリストの 型の表示 オプションをクリアします。

ダンプタブでゴルーチンのリストをフィルタリングする
プログラムが使用するすべてのゴルーチンのダンプを作成し、特定のゴルーチンを検索するフィルターを適用して、フィルター処理された結果を調べることができます。 この手順は、プログラムまたはその一部がどのように機能するかをよりよく理解できます。
例: 次のスクリーンショットは、 Goroutine 1 main.main の実行スタックを示しています。 ゴルーチンのリスト内のゴルーチン名は、「Goroutine <ID> <last_non-runtime_function_on_the_stack>」です。 非ランタイムとは、関数がランタイムパッケージに含まれていないことを意味します。

ゴルーチンをダンプする
デバッグセッション中に、
詳細 をクリックし、 ダンプゴルーチン に移動します。
利用可能なゴルーチンとそのスタックのダンプが別のタブで開きます。

ダンプ結果をフィルタリングする
フィルター アイコン(
)をクリックします。 フィルター フィールドに、検索する文字列を入力します。

リストから除外するゴルーチンを右クリックして、 ゴルーチンを隠す を選択します。 選択したゴルーチンと同じスタックを持つすべてのゴルーチンを非表示にするには、コンテキストメニューから 同じスタックでゴルーチンを非表示にする を選択します。
非表示 リストに隠されたゴルーチンを表示できます。
リストの状態をリセットし、表示リスト内のすべての非表示のゴルーチンを再度作成するには、 隠しゴルーチンをリセットする ボタン(
)をクリックします。

ダンプ結果をテキストファイルにエクスポートする
テキストファイルにエクスポート アイコン(
)をクリックします。
ファイルにエクスポート フィールドで、ストレージパスを選択し、 保存 をクリックします。

変数の調査 / 更新
変数 タブには、選択した フレーム / スレッド内の変数のリストが表示されます。 変数を調べると、プログラムが特定の方法で動作する理由を理解できます。

各変数の左側のアイコンは、その型を示しています。
変数型
アイコン | 説明 |
|---|---|
囲む型の静的メンバー | |
オブジェクトのフィールド (静的および非静的の両方) | |
自己参照オブジェクトを含むフィールド (たとえば、フィールドが初期化される前の | |
最終フィールド | |
静的フィールド | |
スローされた例外 (例外ブレークポイントにヒットしたときにのみ表示されます) | |
メソッドの戻り値 (メソッド戻り値の表示 オプションが有効な場合にのみ表示) | |
メソッドパラメーター | |
列挙型定数 | |
ローカル配列 | |
ローカルプリミティブ型 | |
ウォッチと自動変数。 | |
ローカル参照変数 |
変数のコピー
変数を調べるときに、変数名または値をコピーして別の場所に貼り付けたり、別の変数と 比較したりする必要がある場合があります。
変数の名前をコピーするには、変数を右クリックして 名前をコピー を選択します。
変数が保持する値をコピーするには、変数を右クリックして 値をコピー Ctrl+C を選択します。
変数をクリップボードと比較する
変数値を他の値と比較するには、 クリップボードと値を比較 オプションを使用します。 これは、たとえば、変数に長い文字列が格納されていて、それを別の長い文字列と比較する必要がある場合に役立ちます。
たとえば、テキストファイルから比較するコンテンツをコピーします。
変数 タブで変数を右クリックし、 クリップボードと値を比較 を選択します。
開いた差分ビューアーで相違点を調べます。 差分ビューアー の詳細については、 ファイルとフォルダーの比較を参照してください。

専用の変数を表示するダイアログ
GoLand を使用すると、専用のダイアログで変数をインスペクションできます。 これは、変数(またはその参照が保持するオブジェクト)を追跡する必要があり、同時にフレームとゴルーチン間を移動できる必要がある場合に役立ちます。
変数またはウォッチを右クリックし、 インスペクション を選択します。

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

ソースコードに移動する
変数 ペインから宣言に移動できます。
変数が宣言されているコードに移動するには、変数を右クリックして ソースに移動 F4 を選択します。

変数型の型宣言に移動するには、変数を右クリックして 型ソースに移動 Shift+F4 を選択します。

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

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

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

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

変数値が変更されると、インラインビューが新しい値で更新され、色が変更されます。

インラインビューはデフォルトで有効になっています。 これをオフにするには、 設定 ダイアログ (Ctrl+Alt+S) で に移動し、 値をインラインで表示する オプションを無効にします。
インラインウォッチを追加する
ある式の結果を特定の行に表示したい場合は、そのためのインライン ウォッチを設定できます。 インラインウォッチは永続的であり、セッションの再開後もアクティブなままです。
フィールドを追跡するオブジェクトを参照するインラインヒントをクリックします。
ポップアップで、フィールドを選択し、 インラインウォッチとして追加 をクリックします。
必要に応じてウォッチを微調整します。 有効な式をウォッチとして使用できます。
インラインウォッチを削除するには、ウォッチにカーソルを合わせ、近くの十字をクリックします。
JSON と XML を視覚化する
インライン値を展開したり、JSON または XML を含む 文字列式を評価したりすると、GoLand によってデータの構造化されフォーマットされたビューが提供されます。
これにより、 コードの折りたたみや 選択範囲の拡大または縮小などのエディター機能を使用して、サブツリーを操作したり、大きなオブジェクト内での便利なナビゲーションを行ったりすることができます。
プレビューポップアップのタブを使用して、構造化ビューと生のビューを切り替えます。

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

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