主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

dbstack

関数呼び出しスタック

説明

dbstackは,現在の一時停止条件の原因となった関数呼び出しの行番号とファイル名を実行順に表示します。表示は現在実行中の関数から始まり,最上位の関数に到達するまで続行されます。それぞれの行番号は,エディター内で該当する行へのハイパーリンクです。functionname > localfunctionnameという表記はローカル関数の位置を記述します。

dbstack (nは,最初のn個のスタックフレームを表示から除外します。この構文は,たとえばエラーハンドラー内から関数dbstackを発行するときに便利です。

dbstack (___, ' -completenames ')は,スタック内の各関数の完全修飾名を出力します。

“-completenames”は,前述の構文にある任意の入力引数と共に指定できます。

= dbstack (___は,スタックトレース情報を1列の構造体として返します。

) = dbstack (___は,現在のワークスペースインデックスも返します。

すべて折りたたむ

MATLAB®コードファイルのデバッグ中に,dbstackコマンドを実行してスタックトレース情報を表示します。

次のステートメントを含むファイルmyfile.mを作成します。

函数N = myfile(x) N = myfunction(x-1)结束函数Z = myfunction(y) Z = 2 / y;结束

myfunctionにブレークポイントを設定し,1を入力してmyfileを実行します。myfunctionMATLABはの実行中に,z = 2 / yの行で一時停止します。

dbstopmyfunction myfile >myfile (1);

dbstackコマンドを実行します。MATLABは、現在のブレークポイントに至るまでの関数呼び出しの行番号とファイル名を表示します。

dbstack
在myfile(第2行)中

ファイルのデバッグ中に,各関数の完全なファイル名,完全な関数名および行番号をスタックに格納します。

次のステートメントを含むファイルmyfile.mを作成します。

函数N = myfile(x) N = myfunction(x-1)结束函数Z = myfunction(y) Z = 2 / y;结束

myfunctionにブレークポイントを設定し,1を入力してmyfileを実行します。myfunctionMATLABはの実行中に,z = 2 / yの行で一時停止します。

dbstopmyfunction myfile >myfile (1);

最初のフレームを除外し,完全名を要求するdbstackコマンドを実行します。MATLABは、指定された構造体にスタックトレース情報を返します。

[ST, I] = dbstack(“-completenames”, 1)
'C:\myProject\myfile. 'm' name: 'myfile' line: 2 I = 1

入力引数

すべて折りたたむ

除外するフレーム数。非負の整数として指定します。

出力引数

すべて折りたたむ

スタックトレース情報。1列の構造体として返されます。ここで,は呼び出しスタック内の関数の数です。これらの構造体には次のフィールドがあります。

文件 関数が出現するファイル。ファイルがない場合,このフィールドは空です。
的名字 ファイル内の関数名。
関数呼び出しの行番号。

メモ

ファイルの最後を通過すると,dbstackは,負の行番号値を返して,この特殊な状況を識別します。たとえば,実行される最後の行が15の場合,dbstackの行番号は,その行の実行前には15,実行後には-15になります。

現在のワークスペースインデックス。正の整数として返されます。このインデックスは,現在のワークスペースと,MATLABが現在一時停止中または実行中のワークスペースとの間にあるワークスペースの数を表します。

R2006aより前に導入