ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

デバッグ中の値の検査

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

ワークスペースの選択

デバッグ中に変数を確認するには、まずワークスペースを選択しなければなりません。コマンド ウィンドウから代入される変数やスクリプトを使用して作成される変数は、ベース ワークスペースに属します。関数内に作成される変数は、それ自身の関数ワークスペースに属します。現在のワークスペースを表示するには、[エディター] タブを選択します。[関数呼び出しスタック] フィールドに現在のワークスペースが表示されます。代わりに、コマンド ウィンドウで関数 dbstack を使用することもできます。

表示する変数のワークスペースを選択または変更するには、次のいずれかの方法を使用します。

  • [エディター] タブで、[デバッグ] セクションの [関数呼び出しスタック] メニュー リストからワークスペースを選択します。

  • コマンド ウィンドウから、関数 dbup および関数 dbdown を使用して関数呼び出しスタック内の前または次のワークスペースを選択します。

    関数 who または関数 whos を使い、現在のワークスペース内の変数を表示する

変数値の表示

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

  • 変数値をワークスペース ブラウザーと変数エディターで表示。

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

  • 変数値を MATLAB® エディターで表示。

    マウスを使用して変数または方程式を選択します。右クリックし、コンテキスト メニューから [選択の実行] を選択します。コマンド ウィンドウにその変数または式の値が表示されます。

    メモ

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

  • 変数値を MATLAB エディターでデータ ヒントとして表示。

    これを行うには、マウス ポインターを変数の上に置きます。変数の現在の値がデータ ヒントに表示されます。データ ヒントはポインターを移動するまで表示されます。データ ヒントが表示されない場合は、変数が含まれる行をクリックしてからポインターを変数のそばに近づけます。

    エディターでファイルをデバッグしている間は常にデータ ヒントが有効です。エディターでファイルを編集しているときにデータ ヒントを表示するには、MATLAB の設定で有効にします。

    1. [ホーム] タブの [環境] セクションで [設定] をクリックします。次に、[MATLAB][エディター/デバッガー][表示] を選択します。

    2. [一般的な表示オプション] の下で [編集モードでデータ ヒントを表示] を選択します。

  • 変数値をコマンド ウィンドウで表示。

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

関数内にブレークポイントを設定し、親ワークスペースで変数値を表示しようとすると、その変数の値を入手できない場合があります。このエラーは、MATLAB での変数の上書きプロセス中にアクセスしようとした場合に発生します。そのような場合、MATLAB は次のメッセージを返します。ここで、x は、値を調べようとした変数を表します。

K>> x
Reference to a called function result under construction x. 
このエラーは、親ワークスペースの選択に dbup コマンドを使用するか、[エディター] タブの [デバッグ] セクションで [関数呼び出しスタック] フィールドを使用すると発生します。

関連するトピック