matlab遠端偵錯

來源:互聯網
上載者:User

標籤:

轉自:http://blog.163.com/hair_communication/blog/static/20198911920124145414945/

只是作者好像也是轉來的,原來出處好像是百度上的,現在已經不存在了。

 

Matlab的調試總體分為,直接調試和間接調試。
1.直接調試:
(1)去掉句末的分號;
(2)單獨調試一個函數:將第一行的函式宣告注釋掉,並定義輸入量,以指令碼方式執行 M 檔案;
(3)適當地方添加輸出變數值的語句;
(4)添加keyboard命令;

2.工具調試:
1.)以命令列為主的調試:
(1)設定斷點:

    • dbstop in mfile:在檔案名稱為mfile的M檔案第一個可執行語句前設斷點; 
    • dbstop in mfile at lineno:在mfile的第lineno行設斷點; 
    • dbstop in mfile at subfun:當程式執行到子程式subfun時,暫時中止執行,並設斷點; 
    • dbstop if error:遇到錯誤時,終止M檔案運行,並停在錯誤行(不包括try...catch語句中檢測到的的錯誤,不能在錯誤後重新開始運行); 
    • dbstop if all error:遇到任何類型錯誤均停止(包括try...catch語句中檢測到的的錯誤); 
    • dbstop if warning:程式可恢複運行; 
    • dbstop if caught error:當try...catch檢測到已耗用時間錯誤是,停止M檔案執行,可恢複運行; 
    • dbstop if naninf 或 dbstop if infnan 
    • (2)斷點清除:
    • dbclear all:清除所有M檔案中的所有斷點; 
    • dbclear all in mfile:清除檔案名稱為mfile的檔案中的所有斷點; 
    • dbclear in mfile:清除檔案名稱為mfile中第一個可執行語句前的斷點; 
    • dbclear in mfile at lineno: 
    • dbclear in mfile at subfun: 
    • dbclear if error/warning/naninf/infnan: 
    • (3)恢複運行:
    • dbcount:從斷點處恢複程式的執行,直到下一個斷點或錯誤後返回Matlab基本工作空間; 
    • (4)呼叫堆疊:
    • dbstack: 
    • 1.)dbstack(N) 
    • 2.)dbstack(‘-completenames‘) 
    • (5)列出所有斷點:
    • dbstatus 
    • s=dbstatus:傳回值為M×1結構體
      其中欄位:
      name-函數名;
      line-斷點行向量;
      expression_r-與line中相對應的斷點條件表達字串;
      cond-條件字串,如error,caught error,warning,或naninf;
      identifier-當條件字串是error,caught error,warning,或naninf時,改欄位是Matlab的
      資訊指示字串;
    • dbstatus mfile:列車制定M檔案中所有斷點設定,mfile必須為M檔案函數或有效路徑; 

    • (6)執行一行或多行語句:
    • dbstep:執行下一個可執行語句;
    • dbstep nlines:執行下nlines行可執行語句;
    • dbstep in:執行下一行可執行語句,如有子函數,進入;
    • dbstep out:執行函數剩餘部分,離開函數時停止;
    • 註:這四種都返回偵錯模式,如遇斷點,中止;
    • (7)列出檔案內容:
    • dbtype mfile:列出mfile檔案的內容,並在每行語句前加上標號以方便使用者設定斷點; 
    • dbtype mfile start:end:列出mfile檔案中指定行號範圍的部分 
    • 註:在UNIX和VMS偵錯模式下,並不現實Matlab的調試器,此時必須使用dbtype來顯示來源程式代碼; 
    • (8)切換工作空間:
    • dbdown:遇到斷點時,將當前工作空間切換到被調用的M檔案的空間; 
    • dbup:將當前工作空間切換到調用的M檔案的空間; 
    • (9)退出偵錯模式:
    • dbquit; 
    • 1.1控制單步運行
      step:單步,不進入函數
      step in:單步,進入子函數單步
      step out:在函數中的話跳出函數,否則直接跳入下個斷點處
      save and run:儲存,運行
      go until cursor:運行到游標處
      可以看到,以上幾個按鈕和C編輯器中是基本一樣的意思

      1.2斷點操作
      • set/clear breakpoint:設定清除斷點
        set/modify conditional breakpoint:設定或修改條件斷點,條件斷點可以使程式滿足一定條件時停止
        enable/diable breakpoints:使斷點有效或無效
        clear breakpoints in all files:清除所有斷點
        stop if errors/warnings:程式出現錯誤或警告時停止運行,進入調試但不包括try...catch中的錯誤
        切換工作空間,結束對程式的調試,開啟編輯視窗中的stack列表,選擇base,切換到主工作空間。記得要清楚掉斷點,紅色圓點去掉了,綠色箭頭(調試)變為白色,然後選擇continue,白色箭頭去掉,調試完成。

matlab遠端偵錯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.