ドキュメンテーション

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

dbstop

デバッグ用にブレークポイントを設定する

構文

  • dbstop in file
  • dbstop in file at location
  • dbstop in file if expression
  • dbstop in file at location if expression
  • dbstop if condition

説明

dbstop in filefile の最初の実行可能な行にブレークポイントを設定します。file を実行すると、MATLAB® はデバッグ モードになり、ブレークポイントで実行を一時停止して、一時停止した行を表示します。

dbstop in file at location は指定された場所にブレークポイントを設定します。MATLAB の実行はその場所の直前で停止します。ただし、その場所が「無名関数」の場合を除きます。その場所が無名関数の場合は、実行はブレークポイントの直後で停止します。

dbstop in file if expression は、ファイルの最初の実行可能な行に条件付きブレークポイントを設定します。expression が true (1) に評価される場合にのみ、実行が一時停止します。

dbstop in file at location if expression は、指定された位置に条件付きブレークポイントを設定します。expression が true に評価される場合にのみ、実行はその場所またはその直前で停止します。

dbstop if condition は、指定された condition (errornaninf など) を満たす行で実行を一時停止します。他のブレークポイントとは異なり、このブレークポイントは特定ファイルの特定行には設定されません。指定した condition が発生した時点で MATLAB は任意のファイルの任意の行で停止します。

dbstop(b) は、以前 b に保存したブレークポイントを復元します。保存したブレークポイントを含むファイルは、検索パス上または現在のフォルダー内になければなりません。MATLAB は行番号でブレークポイントを割り当てるため、ファイル内の行はブレークポイントを保存したときと同じでなければなりません。

すべて折りたたむ

ブレークポイントを設定し、プログラムの最初の実行可能な行で実行を一時停止します。

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

function z = buggy(x)
n = length(x);
z = (1:n)./x;

dbstop コマンドを発行し、buggy を実行します。

dbstop in buggy
buggy(1:5)

MATLAB は停止した行を表示し、デバッグ モードになります。

2   n = length(x);
K>> 

dbquit」と入力してデバッグ モードを終了します。

プログラム内で、ローカル関数の実行可能な最初の行にブレークポイントを設定します。

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

function n = myfile(x)
n = myfunction(x);

function y = myfunction(x)
y = x + 1;

myfunction にブレークポイントを設定します。

 dbstop in myfile>myfunction

プログラム内に、MATLAB が複数回ループを反復した後に一時停止するブレークポイントを設定します。

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

x = ones(1,10);

for n = 1:10
x(n) = x(n) + 1;
end

n >= 4 のときに停止するブレークポイントを設定し、コードを実行します。

dbstop in myprogram at 4 if n>=4
myprogram

MATLAB はループを 3 回反復した後、n = 4 のときに 4 行目で一時停止します。

4   x(n) = x(n) + 1;
K>> 

dbquit」と入力してデバッグ モードを終了します。

ブレークポイントを設定して、実行時エラーが発生したときに実行を一時停止します。

入力ベクトルを要求するファイル buggy.m を作成します。

function z = buggy(x)
n = length(x);
z = (1:n)./x;

エラー ブレークポイントを設定し、ベクトルではなく行列の入力を指定して buggy を呼び出します。

dbstop if error
buggy(magic(3))

実行時エラーが発生し、MATLAB がデバッグ モードになり、buggy.m の 3 行目で一時停止します。

Error using  ./ 
Matrix dimensions must agree.

Error in buggy at 3
z = (1:n)./x; 
3   z = (1:n)./x;

dbquit」と入力してデバッグ モードを終了します。

ブレークポイントを設定し、コードが NaN 値を返したときに実行を一時停止します。

入力ベクトルを要求するファイル buggy.m を作成します。

function z = buggy(x)
n = length(x);
z = (1:n)./x;

警告ブレークポイントを設定し、要素の 1 つとして 0 を含む入力ベクトルを指定して buggy を呼び出します。

dbstop if naninf
buggy(0:2)

ゼロ除算エラーが発生し、MATLAB がデバッグ モードになり、buggy.m の 3 行目で一時停止します。

NaN/Inf breakpoint hit for buggy on line 3.

dbquit」と入力してデバッグ モードを終了します。

ブレークポイントの設定、保存、クリアを行い、その後で保存されているブレークポイントを復元します。

これらのステートメントを含むファイル buggy.m を作成します。

function z = buggy(x)
n = length(x);
z = (1:n)./x;

コマンド ウィンドウからブレークポイントを設定します。

dbstop at 2 in buggy
dbstop if error

dbstatus を実行します。

dbstatus

MATLAB で設定したブレークポイントの詳細が表示されます。

Breakpoint for buggy is on line 2.
Stop if error.

ブレークポイントを構造体 b に保存して、b を MAT ファイル buggybrkpnts に保存します。b=dbstatus('-completenames') を使用して、絶対パスおよびブレークポイント関数を入れ子にするシーケンスを保存します。

b = dbstatus('-completenames');
save buggybrkpnts b

すべてのブレークポイントをクリアします。

dbclear all

MAT ファイルを読み込んでブレークポイントを復元します。

load buggybrkpnts
dbstop(b)

入力引数

すべて折りたたむ

ファイル名。文字列として指定します。ファイル名には部分パスを含めることができますが、検索パス上のフォルダーまたは現在のフォルダー内になければなりません。

例: myfile.m

ファイル名に -completenames オプションが含まれる場合、そのファイル名が完全修飾名である限り、ファイルが検索パス上にある必要はありません。

例: c:\Program Files\MATLAB\myfile.m -completenames

さらに、file に filemarker (>) を含めて、特定のローカル関数またはファイル内の入れ子関数へのパスを指定できます。

例: myfile>myfunction

file が MATLAB コード ファイルではない場合 (たとえば組み込みファイルまたは MDL ファイル)、MATLAB は警告を発行します。MATLAB はファイルを停止できないため、ファイルの実行前に停止します。

ブレークポイントを設定する file 内の位置。次のいずれかのオプションとして指定します。

  • 文字列と指定してされた file の行番号。既定の設定は 1 です。

  • file 内の行番号と、無名関数番号の位置。文字列として指定します。たとえば、1@2 は、2 番目の無名関数の行番号 1 を指定します。無名関数の既定の番号は 1 です。

  • 文字列として指定される、file のローカル関数の名前。

    メモ:   file がファイルマーカーを含む場合、ブレークポイントの設定時に location を指定することはできません。たとえば、コマンド dbstop in myfile>myfilefunction at 5 は無効です。

1 (true) または 0 (false) のスカラー論理値として (eval を使用する場合と同様に) 評価されるコード。文字列として指定します。

例: n >= 4

該当する条件が true に評価されたときに実行を停止するステートメント。次のいずれかのオプションとして指定します。

  • errortry/catch ブロックの外部で発生する実行時エラー。また、uncaught 実行時エラーの後、実行を再開することはできません。

    特定のエラーが発生したときのみ実行を停止する場合は、メッセージ ID を指定します。

    • dbstop if error は、try/catch ブロックの外部で発生した最初の実行時エラーで実行を停止します。

    • dbstop if error MATLAB:ls:InputsMustBeStrings は、メッセージ ID が MATLAB:ls:InputsMustBeStringstry/catch ブロックの外部の最初の実行時エラーで実行を停止します。

  • caught errortry/catch ブロックの try 部分で発生する実行時エラー。特定のエラーが発生したときのみ実行を停止する場合は、メッセージ ID を指定します。

  • warning — 実行時警告が発生します。特定の警告が発生したときのみ実行を停止する場合は、メッセージ ID を指定します。

    この条件は、warning off all コマンドで警告を無効にした場合や、指定した id の警告を無効にした場合には効果がありません。警告の無効化の詳細は、warning を参照してください。

  • naninf — コードは、無限値 (Inf) または数値ではない値 (NaN) を、演算子、関数呼び出しまたはスカラー代入の結果として返します。

以前 b=dbstatus を使用して構造体配列に保存したブレークポイントのリスト。

詳細

すべて折りたたむ

完全修飾名

完全修飾名とは、システム上の他のファイルと間違えることのないよう一意に指定された正確なファイル名です。

  • Windows® プラットフォーム — 2 つのバックスラッシュ (\\) またはドライブ名とコロン (:) で始まるファイル名です。

  • UNIX® プラットフォーム — スラッシュ (/) またはチルダ (~) で始まるファイル名です。

ヒント

  • デバッグを開始する前に、プログラムが保存済みであり、プログラムとそれが呼び出すファイルがすべて検索パス上または現在のフォルダーに存在することを確認してください。

  • ブレークポイントで実行を一時停止した後に実行を再開するには、dbcont または dbstep を使用します。デバッグ モードを終了するには、dbquit を使用します。

  • MATLAB は、モーダルなダイアログ ボックスの表示中やプログラムが作成した Figure の表示中にブレークポイントで停止した場合、応答なしになります。デバッグ モードを終了して MATLAB プロンプト (>>) に戻るには、Ctrl+C を使用します。

R2006a より前に導入

この情報は役に立ちましたか?