MATLAB Function Reference |
Graphical
Interface
在使用 Editor/Debugger 時,你可以在 Breakpoints 選單中,找到同樣的效果.
Syntax
dbstop in mfile dbstop in mfile at lineno dbstop in mfile at subfun dbstop if error dbstop if all error dbstop if warning dbstop if naninf dbstop if infnan
Description
dbstop in mfile
會讓 mfile 一開始執行的時候就進入除錯模式,而
mfile 必須在目前的資料夾或是其它在 MATLAB 中有設定搜尋路徑的資料夾中,如果你有在圖型除錯模式的支援下,MATLAB 除錯器會把 mfile
的第一行( 可執行的 )當作中斷點開啟.這時你就可以利用除錯器除錯. 此時使用 dbcont
或 dbstep
可以讓 mfile
繼續執行. 而使用 dbquit
則會離開除錯器.
dbstop in mfile at lineno
會在你執行 mfile 的時候在第
lineno 行處暫停它.並且啟始除錯模式,mfile 必須在目前的資料夾或是在其它 MATLAB 可以搜尋到的資料夾下,如果你有圖型除錯模式的支援,
MATLAB 除錯器在開啟 mfile,並且將第 lineno 行設為中斷點, 如果第 lineno 行是不可執行的,除錯器會將中斷點設在下一行.
這時你可以利用除錯器除錯. 使用 dbcont
或 dbstep
可以讓 mfile
繼續執行. 而使用 dbquit
則會離開除錯器.
dbstop in mfile at subfun
在 mfile 中的次函數 subfun
執行時暫停它. 並且起始 MATLAB 的除錯器. mfile 必須在目前的資料夾或是在其它 MATLAB 可以搜尋到的資料夾下,如果你有圖型除錯模式的支援,
MATLAB 除錯器在開啟 mfile,並且把次函式 sunfun 中斷點,這時你可以利用除錯器除錯. 使用
dbcont
或 dbstep
可以讓 mfile 繼續執行. 而使用 dbquit
則會離開除錯器.
dbstop if error
會在任何
M檔案執行發生錯誤時,在錯誤的那一行停止執行,並且進入除錯模式. M檔案必須在目前的資料夾或是在其它 MATLAB 可以搜尋到的資料夾下,而且如果錯誤是在
try...catch 的語法中發生的話,dbstop if error 就不把它當成錯誤處理. 在錯誤發生後程序就無法繼續執行了,這時始用
dbquit
可以離開除錯器.
dbstop if all error
基本上是跟 dbstop if error
是一樣的,但它把 try...catch 語法中發生的錯誤也當成一般錯誤處理 ( 將程式停止在錯誤發生處 ).
dbstop if warning
會在任何
M檔案執行到警告發生時,在警告發生的那一行停止執行,並且進入除錯模式. M檔案必須在目前的資料夾或是在其它 MATLAB 可以搜尋到的資料夾下. 用
dbcont
或 dbstep
可以繼續執行.
dbstop if naninf
會在任何 M檔案執行遇到無限大的數( inf 例如 1/0
)時,在 inf 發生的那一行停止執行,並且進入除錯模式. M檔案必須在目前的資料夾或是在其它 MATLAB 可以搜尋到的資料夾下. 用
dbcont
或 dbstep
可以繼續執行.用dbquit
離開除錯器.
dbstop if infnan
會在任何 M檔案執行遇到非數值( nam 例如
0/0 )時,在 nan 發生的那一行停止執行,並且進入除錯模式. M檔案必須在目前的資料夾或是在其它 MATLAB
可以搜尋到的資料夾下. 用 dbcont
或
dbstep
可以繼續執行.用dbquit
離開除錯器.
Remarks
at, in 和 if 這些 UNIX 使用者所熟悉的關鍵字為選擇性的.
Examples
function z = buggy(x) n = length(x); z = (1:n)./x;
Example 1 - Stop at First
Executable Line
dbstop in buggy buggy(2:5)
n = length(x);
函式
dbstep
Example
2 - Stop if Error
buggy 只對向量作用,所以在輸入矩陣時會有錯誤發生,以下例子:
dbstop if error buggy(magic(3))
執行後
??? Error using ==> ./ Matrix dimensions must agree. Error in ==> c:\buggy.m On line 3 ==> z = (1:n)./x; K?
MATLAB 會顯示以上錯誤訊息,並且進入除錯模式.
Example
3 - Stop if Inf
dbstop if naninf buggy(0:2)
Warning: Divide by zero. > In c:\buggy.m at line 3 K?
See
Also
dbclear
,
dbcont
,
dbdown
, dbquit
,
dbstack
,
dbstatus
, dbstep
,
dbtype
,
dbup
, partialpath
dbstep | dbtype |