我正在做我的「主」S函數基於Matlab模板與mdlStart
mdlOutputs
等,它與我有的一些Ansi C文件進行通信,此S函數是用於Simulink。我使用mex正確編譯了這些文件,並且爲了調試我正在使用Visual Studio 2015.我可以設置和使用斷點,以便一切工作正常。Matlab在mdlOutputs後與S函數崩潰
問題是,在完成'mdlOutputs'函數後,所有內容都被正確打印到Matlab中,調試進入一個斷點並進入'simulink.c'。之後,調試被打破,說「libmex.pdb」找不到。
如果我在循環中運行沒有Visual Studio的Simulink模型,Matlab只會崩潰並停止工作。
那麼,關於如何正確檢查它給我一個錯誤的任何想法?此外,您是否有任何線索知道爲什麼在離開mdlOutputs
之後以及在進入mdlTerminate
之前進程崩潰?這兩個功能之間會發生什麼?
我使用的是Windows 7,64位和Matlab 2012b(我將嘗試在2015b中運行它)。
該選項保證你的s函數不會拋出導致代碼長跳轉的異常。這個選項可能掩蓋了導致崩潰的其他問題。確保你不覆蓋mdlOutputs中的任何內存。 – Navan
是的,你是對的。事情是,我如何確保沒有重寫的內存正在發生?在Matlab + Visual Studio中,它非常困難 –