[英]How to debug matlab code without gui
我最近開始使用沒有GUI的MATLAB,通過使用-nodesktop選項啟動matlab,它的速度要快得多。
但是目前我無法在非gui模式下調試.m腳本。 每次我必須調試時,我必須打開默認的matlab編輯器。有沒有人想出辦法來做到這一點? 提前致謝
我正在使用Ubuntu Linux,以防萬一。
要使用命令行設置斷點, dbstop
是工具(加上dbclear
清除斷點, dbstatus
列出它們)。
dbstop
目前有17種不同的形式,允許您指定以下各種組合:
有條件的任意表達式。 例如,
dbstop in myFun.m at 224 if ~exist('x','var')
dbstop if error
) dbstop if error myFun.m:barErrorId
) dbstop if warning
)或特定警告 NaN
或Inf
( dbstop if naninf
) 有關詳細信息和示例,請參閱dbstop
的文檔。
也習慣了dbcont
(或F5), dbstep
(或F10), dbquit
(Shift + F5), dbstep
(也是dbstep in
, dbstep out
), dbstack
(看看你在哪里以及你是如何到達那里的)。 Windows外部的鍵盤快捷鍵可能有所不同。
dbup
和dbdown
很少使用,但仍然非常有用,它允許您切換工作空間上下文(內存堆棧)。
請參閱調試的MathWorks頁面中的函數摘要以及示例和操作方法頁面列表。
與“ db
”函數相關的是checkcode
,它會在您運行之前檢查代碼是否存在可能的問題。 這是紅色波浪形的一個很好的替代品,強調你可以在MATLAB編輯器中獲得。
一旦你掌握了dbstop
及其語法,你就不需要在代碼中插入keyboard
,但它總是一個選項。
嘗試將keyboard
命令放在代碼中以插入斷點。 當達到keyboard
命令時,MATLAB將進入一個可用於檢查變量的交互式提示。 例如:
x = rand(10,10);
y = rand(10,5);
z = x * y;
keyboard; % you can interactively inspect x, y, z here
z = sort(z);
要退出鍵盤模式,可以鍵入dbquit
退出程序,或return
繼續執行程序。
另一個技巧是打開dbstop if error
會在你的代碼崩潰時自動將你帶入交互式提示。
您可以使用MATLAB的編輯器調試按鈕在MATLAB環境中進行調試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.