Примеры показывают, как отладить timestwo.F
, найденный в вашем matlabroot
/extern/examples/refbook
папка.
Бинарные файлы MEX создаются с -g
опция не выполняется на других компьютерах, потому что они используют файлы, которые не распределяются с MATLAB. Для получения дополнительной информации об изоляции проблем с файлами MEX смотрите Поиск и устранение проблем на Приложениях Файла MEX на C.
Для файлов MEX, скомпилированных с любой версией компилятора Intel® Visual Fortran, можно использовать средства отладки, найденные в версии Microsoft® Visual Studio®.
MATLAB поддержал компилятор Фортрана g95, имеет -g
опция для создания бинарных файлов MEX с отладочной информацией. Такие файлы могут использоваться с gdb, GNU® Debugger. В этом разделе описываются использование gdb.
В этом примере, >>
командной строки MATLAB показан перед командами MATLAB и
linux>
представляет подсказку Linux®; ваша система может показать различную подсказку. Подсказкой отладчика является <gdb>
.
Чтобы скомпилировать исходный файл MEX, введите:
linux> mex -g timestwo.F
В подсказке Linux запустите gdb отладчик с помощью matlab
-D
опция:
linux> matlab -Dgdb
Запустите MATLAB без Виртуальной машины Java® (JVM™) при помощи -nojvm
флаг запуска:
<gdb> run -nojvm
В MATLAB позвольте отладить с dbmex
функционируйте и запустите свой бинарный файл MEX:
>> dbmex on >> y = timestwo(4)
Вы готовы начать отлаживать.
Часто удобно установить точку останова в mexFunction
таким образом, вы останавливаетесь в начале стандартной программы шлюза.
Примечание
Компилятор может изменить имя функции. Например, это может добавить подчеркивание. Чтобы определить, как этот символ появляется в данном файле MEX, используйте команду Linux nm
. Например:
linux> nm timestwo.mexa64
| grep -i mexfunction
Операционная система отвечает чем-то как:
0000091c T mexfunction_
Использование mexFunction
в операторе точки останова. Обязательно используйте правильный случай.
<gdb> break mexfunction_ <gdb> continue
Если вы поражаете одну из своих точек останова, можно полностью использовать любые команды, которые отладчик обеспечивает, чтобы исследовать переменные, память отображения, или смотреть регистры.
Чтобы проистечь из точки останова, введите continue
:
<gdb> continue
После остановки в последней точке останова введите:
<gdb> continue
timestwo
концы и отображения MATLAB:
y = 8
От подсказки MATLAB можно возвратить управление в отладчик путем ввода:
>> dbmex stop
Или, если вы закончены рабочий MATLAB, введите:
>> quit
Когда вы будете закончены с отладчиком, введите:
<gdb> quit
Вы возвращаетесь к подсказке Linux.
Обратитесь к документации, которой предоставляют ваш отладчик для получения дополнительной информации о его использовании.