我有一個使用s_function
的Simulink模型,它是一個mexw32
文件。 s_function
塊也使用.lib
模塊。現在,當我試圖在模擬結束之前運行模型Matlab崩潰並且在命令窗口中沒有任何錯誤時。如果Matlab崩潰,我有什麼選擇來進行調試?如何調試Matlab/Simulink?
回答
這是導致seg-fault的寫入不良的S函數的典型行爲。使用下面列出的步驟調試它:http://www.mathworks.com/support/solutions/en/data/1-3KK6RK/
從我發現到目前爲止,它看起來像有一個DLL丟失。我應該在哪裏把斷點放在S函數中(我試過但我每次都錯過了壞行)? –
在每個mdl *函數中添加一個斷點。 – Navan
我不知道Simulink或S函數(從來沒有使用它們),但通常當一個MEX文件段錯誤時,MATLAB將從它大部分時間恢復,顯示一個堆棧跟蹤並將您置於「需要重新啓動MATLAB」命令提示符模式下。您會在系統%TMP%
文件夾中找到崩潰轉儲和錯誤日誌文件。如其他人所說,如果您有權訪問MEX函數的源代碼,請使用調試符號重新編譯它,將調試器附加到MATLAB,將斷點放入調試器,並通過調用它來啓動MEX函數來自MATLAB。一旦進入C代碼,請逐步調試代碼,直到找到問題。
以下是有關doc page更詳細描述此過程。
您提到您的MEX可執行文件與外部庫鏈接。所以你可能也想檢查問題的根源。
- 1. 如何調試
- 2. 如何調試Jest測試?
- 3. 如何調試(測試)GcmNetworkManager?
- 4. 如何調試自定義調試器?
- 5. 如何通過調試進行調試?
- 6. 如何調試Rscript調用
- 7. 如何調試grpc調用?
- 8. 如何調試JS調用
- 9. 如何調試SOAP調用?
- 10. 如何調試MobileSubstrate調整?
- 11. 如何調試TreeNodeCollection
- 12. 如何調試Gruntfile.js?
- 13. 如何調試ClojureScript
- 14. 如何調試SocketTimeoutException?
- 15. 如何調試Reflexil
- 16. 如何調試HtmlProvider?
- 17. 如何調試AppleScript?
- 18. 如何調試JBossESB?
- 19. 如何調試AutoMapper.AutoMapperMappingException
- 20. 如何調試tabindex
- 21. 如何調試Magento?
- 22. 如何調試defadvice
- 23. 如何調試javascript?
- 24. 如何調試sidekiq?
- 25. 如何調試JavaFX
- 26. 如何調試proguard
- 27. 如何調試Task.Factory
- 28. 如何調試NinjectWebCommon.cs?
- 29. 如何調試karmatests?
- 30. 如何調試popover?
當你說MATLAB「崩潰」時,你是什麼意思?你說它不會在MATLAB命令行中返回一個紅色的錯誤 - 它是否會給出其他形式的錯誤,比如SEGV崩潰轉儲,然後退出? MATLAB本身是否消失? –
@SamRoberts Matlab凍結,出現一個窗口:MATLAB已停止工作,在線檢查解決方案,關閉程序。如果我點擊查看詳細信息,問題事件名稱= APPCRASH。其餘的我無法理解。 –
你在使用什麼操作系統? –