Невозможно воспроизвести исполняемый файл зависания исполняемого файла Matlab Compiler - PullRequest
3 голосов
/ 06 января 2012

У меня следующая проблема: У меня есть программа Matlab в виде некоторого набора файлов * .m. Позднее он компилируется в исполняемый файл и используется. Проблема в том, что иногда полученный исполняемый файл просто зависает, и это поведение невозможно воспроизвести при отладке / запуске файлов * .m из IDE (даже с использованием тех же входных данных).

Чтобы выяснить, что случилось, я намеревался:

  • компилировать (как-то) * .m файлы в C / C ++
  • скомпилируйте C / C ++ для отладки, чтобы получить .exe и .pdb А позже, когда .exe зависает, просто «прикрепите» отладчик Visual Studio к зависшему .exe, чтобы проверить, где он «зацикливается / ждет».

К сожалению, Matlab Compiler (как мне сегодня сказали) не создает код C / C ++ до создания исполняемого файла. Я был введен в заблуждение -g вариант mcc , который согласно документу должен делать следующее:

-g Generate Debugging Information

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

Это похоже на то, что я хочу заархивировать. Буду признателен, если кто-нибудь объяснит мне это несоответствие или подскажет, как архивировать то, что я пытаюсь сделать (если это вообще можно сделать).

1 Ответ

3 голосов
/ 06 января 2012

Невозможно создать отлаживаемый код в компиляторе Matlab, потому что развернутый код использует MCR.(Виртуальная машина Matlab).

См. Этот вопрос: Есть ли способ отладки скомпилированных компонентов с использованием Matlab Debugger?

Поскольку у вас нет ошибок, скореебесконечный цикл, лучшее решение в этом случае - вывод на экран, и, надеюсь, вы обнаружите ошибку.

...