3

我有以下问题:我有一个 Matlab 程序,格式为一组 *.m 文件。它稍后被编译成可执行文件并使用。问题是有时生成的可执行文件会挂起,并且在从 IDE 调试/运行 *.m 文件时(即使使用相同的输入数据)也无法重现此行为。

为了弄清楚我打算做什么:

  • 将(不知何故)*.m 文件编译成 C/C++
  • 将 C/C++ 编译为调试以获取 .exe 和 .pdb 稍后当 .exe 挂起时,只需将 Visual Studio 调试器“附加”到挂起的 .exe 以检查它“循环/等待”的位置。

Unfortunaley Matlab Compiler(正如我今天被告知的那样)在创建可执行文件之前不会生成 C/C++ 代码。我被mcc的-g选项误导了,根据文档应该执行以下操作:

-g Generate Debugging Information

Include debugging symbol information for the C/C++ code generated by MATLAB Compiler.

它看起来完全像我想要存档的东西。如果有人可以向我解释这种缺陷或建议如何归档我正在尝试做的事情(如果可以做到的话),我将不胜感激。

4

1 回答 1

3

无法在 Matlab 编译器中创建可调试代码,因为部署的代码使用 MCR。(Matlab 虚拟机)。

看到这个问题:有没有办法使用 Matlab 调试器调试编译的组件?

由于您没有错误,而是无限循环,因此在这种情况下,最好的解决方案是屏幕输出,希望您能跟踪错误。

于 2012-01-06T08:20:57.313 回答