メインコンテンツ

デバッグ中の値の検査

R2021b 以降. 次を置き換え: Examine Value While Debugging (R2021a).

コード ファイルのデバッグ時、MATLAB® が一時停止している間に、現在ワークスペース内にある任意の変数の値を表示できます。コードを構成する行が期待した結果を出力するかを確認する場合、値を調べると便利です。結果が期待したものであれば、コードの実行を継続するか、次の行をステップ実行できます。結果が期待どおりでない場合、対象行またはその前の行にエラーが含まれている可能性があります。

変数値の表示

デバッグ中に変数の値を表示する方法はいくつかあります。

  • [ワークスペース] パネル — [ワークスペース] パネルには、現在のワークスペースのすべての変数が表示されます。[ワークスペース] パネルの "値" 列に変数の現在の値が表示されます。詳細を表示するには、変数をダブルクリックします。変数エディターが開き、選択した変数の内容が表示されます。関数 openvar を使用して、変数エディターで変数を開くこともできます。

    Workspace panel showing two variables, n and x, with the current value for each variable displayed in the Value column

  • エディターおよびライブ エディター — エディターおよびライブ エディターで変数の値を表示するには、変数にカーソルを合わせます。変数の現在の値がデータ ヒントに表示されます。データ ヒントはカーソルを移動するまで表示されます。データ ヒントが表示されない場合は、変数が含まれる行をクリックしてからポインターを変数のそばに近づけます。

    データ ヒントは、エディターでのデバッグ中は常に有効になります。ライブ エディターやエディターでのファイルの編集時にデータ ヒントを無効にするには、[ビュー] タブに移動し、 [データヒント] ボタンをクリックしてオフにします。

    Script with a data tip showing the value of the variable n

    エディターまたはライブ エディターでは、変数または式を選択して右クリックし、[コマンド ウィンドウで選択を実行] をクリックして、それらの値を表示することもできます。変数または式の値が MATLAB のコマンド ウィンドウに表示されます。

    メモ

    ただし、ファイル実行時など MATLAB がビジー状態にある場合は選択対象の値を求められません。

  • コマンド ウィンドウ — コマンド ウィンドウで変数の値を表示するには、変数の名前を入力します。たとえば、変数 n の値を表示するには、「n」と入力して Enter キーを押します。コマンド ウィンドウに変数の名前とその値が表示されます。現在のワークスペースにあるすべての変数を表示するには、関数 who を呼び出します。

現在のワークスペース以外の変数値の表示

関数のデバッグ中や呼び出された関数またはファイルにステップ インしたとき、現在の行で一時停止する前に実行した関数のリストが [デバッガー] パネルの [関数呼び出しスタック] セクションに表示されます。"関数呼び出しスタック" とも呼ばれるこのリストには、関数が順序付けられて表示されます。MATLAB が一時停止された現在のスクリプトまたは関数がリストの一番上に表示され、最初に呼び出されたスクリプトまたは関数がリストの一番下に表示されます。 (R2025a 以降)

[デバッガー] パネルが開いていない場合にこれを開くには、[エディター] タブまたは [ライブ エディター] タブに移動し、[解析] セクションで [デバッガー] をクリックします。また、サイドバーの [パネルをさらに開く] ボタン を使用してパネルを開くこともできます。

Debugger panel with the Function call stack section showing that the debugger is paused at line 3 of plotRand.m

R2025a より前: 関数呼び出しスタックはファイルの先頭に表示され、関数が順番に並んでいます。最初に呼び出されたスクリプトまたは関数が左に、MATLAB によって一時停止された現在のスクリプトまたは関数が右に表示されます。

コマンド ウィンドウで関数 dbstack を使用して現在のワークスペースを表示することもできます。

dbstack
> In mean (line 48)
In plotRand (line 5)

関数呼び出しスタック内の各関数には、対応するワークスペースがあります。ワークスペースは、MATLAB 内で作成した変数、またはデータ ファイルや他のプログラムからインポートした変数を格納します。コマンド ウィンドウから代入される変数やスクリプトを使用して作成される変数は、ベース ワークスペースに属します。関数内に作成される変数は、それ自身の関数ワークスペースに属します。現在のワークスペースの外にある変数の値を確認するには、[デバッガー] パネルの [関数呼び出しスタック] セクションで対応する関数を選択します。

コマンド ウィンドウで関数 dbup および dbdown を使用して関数呼び出しスタック内の前または次のワークスペースを選択することもできます。現在のワークスペースにある変数を表示するには、who 関数または whos 関数を使用します。

MATLAB での変数の上書きプロセス中に別のワークスペースの変数の値を表示しようとすると、MATLAB のコマンド ウィンドウにエラーが表示されます。

K>> x
Variable "x" is inaccessible. When a variable appears on both sides of an assignment
statement, the variable may become temporarily unavailable during processing. 
このエラーは、ワークスペースの選択に呼び出し関数スタックの右にあるドロップダウン リストを使用した場合にも dbup コマンドを使用した場合にも発生します。

参考

トピック