【发布时间】:2011-08-24 03:58:07
【问题描述】:
我目前正在开发一个带有 CUDA 功能的 mex 文件,以在 MATLAB 中使用。当我做错了什么(例如错误的指针或类似的东西)时,MATLAB 总是崩溃(windows 提示我结束,发送报告以供 mathworks 或尝试继续)。有没有办法防止这种情况发生?像这样开发真的很烦人,但你可能知道自己:几乎没有人可以在没有“反复试验”的情况下编写完美的代码...... 到目前为止谢谢!
【问题讨论】:
我目前正在开发一个带有 CUDA 功能的 mex 文件,以在 MATLAB 中使用。当我做错了什么(例如错误的指针或类似的东西)时,MATLAB 总是崩溃(windows 提示我结束,发送报告以供 mathworks 或尝试继续)。有没有办法防止这种情况发生?像这样开发真的很烦人,但你可能知道自己:几乎没有人可以在没有“反复试验”的情况下编写完美的代码...... 到目前为止谢谢!
【问题讨论】:
据我所知,没有办法防止 Matlab 因 mex 错误而崩溃。但是您可以将调试器附加到 Matlab 进程并逐步执行代码。
我知道如果您的代码位于加载到 Matlab 的外部 dll 中,这将有效。我不确定这是否适用于 mex 文件。
【讨论】:
【讨论】:
-g 绝对不会阻止 Matlab 因 mex 错误而崩溃。我很惊讶这是该问题的公认答案。 -g 可能确实有助于发现问题,但建议使用调试器似乎几乎是不言而喻的。
您可以通过以下过程使用 Visual Studio 和 NVIDIA Nsight for Visual Studio 调试 Matlab mexfiles,包括 CUDA 代码。
【讨论】: