[英]Debug a mex function in Visual Studio
我正在嘗試將現有的C ++代碼包裝到MATLAB可調用函數中。 我正在使用Visual Studio 2013 生成MEX文件 。 MEX文件是正確創建的,我可以從MATLAB中調用它並來回傳遞參數而不會出現任何問題。
現在我想調試我的C ++邏輯,我似乎無法讓它工作。 我創建了叫我的功能一個m腳本,在調試的時候有Visual Studio中運行MATLAB -作為解釋在這里 。
當我按F5調試我的MEX文件時,Visual Studio運行MATLAB,然后非常快地退出調試模式,就像MATLAB進程終止一樣。 幾秒鍾后 ,MATLAB開始運行代碼。 就好像我正在運行的MATLAB實例啟動另一個實例並終止,混淆了Visual Studio。
如何調試MEX功能?
UPDATE:Apparantly MATLAB的做法剛好,作為描述在這里 。 添加-wait
參數使Visual Studio等到腳本運行完畢,但我設置的斷點不起作用 - 因為正在調試的進程不是加載DLL的進程。
結果<MATLABROOT>\\bin\\matlab.exe
實際運行<MATLABROOT>\\bin\\w64\\matlab.exe
。 因此,如果我要求Visual Studio運行它,則會按預期觸發斷點。
在調試器下以這種方式運行MATLAB比任何其他方式慢很多 ,但至少現在我可以調試我的代碼。
您也可以像往常一樣運行MATLAB會話,然后將Visual Studio連接到正在運行的進程。 這在文檔中有更詳細的解釋。 這是一個快速摘要:
matlab.exe
進程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.