Отладьте Файлы MEX на языке ФОРТРАН

Примечания по отладке

Примеры показывают, как отладить timestwo.F, найденный в вашей папке matlabroot /extern/examples/refbook.

Бинарные файлы MEX, созданные с опцией -g, не выполняются на других компьютерах, потому что они полагаются на файлы, которые не распределяются с MATLAB. Для получения дополнительной информации об изоляции проблем с файлами MEX смотрите, Поиск и устранение проблем с файлами MEX.

Отладка на платформах Microsoft Windows

Для файлов MEX, скомпилированных с любой версией компилятора Intel® Visual Fortran, можно использовать средства отладки, найденные в версии Microsoft® Visual Studio®. Отошлите к “Созданию Отладку темы” файлов MEX Языка C/C++ на Платформах Microsoft Windows для получения инструкций относительно использования этого отладчика.

Отладка на платформах Linux

MATLAB поддержал компилятор Фортрана g95, имеет опцию -g для создания бинарных файлов MEX с отладочной информацией. Такие файлы могут использоваться с gdb, GNU® Debugger. В этом разделе описываются использование gdb.

Отладчик GNU gdb

В этом примере подсказка команды MATLAB >> показывают перед командами MATLAB, и linux> представляет подсказку Linux®; ваша система может показать различную подсказку. Подсказкой отладчика является <gdb>.

  1. Чтобы скомпилировать исходный файл MEX, введите:

    linux> mex -g timestwo.F
  2. В подсказке Linux запустите gdb отладчик с помощью опции -D matlab:

    linux> matlab -Dgdb
    
  3. Запустите MATLAB без Виртуальной машины Java® (JVM™) при помощи флага запуска -nojvm:

    <gdb> run -nojvm
  4. В MATLAB позвольте отладить с функцией dbmex и запустите свой бинарный файл MEX:

    >> dbmex on
    >> y = timestwo(4)
  5. Вы готовы начать отлаживать.

    Часто удобно установить точку останова в mexFunction, таким образом, вы останавливаетесь в начале стандартной программы шлюза.

    Примечание

    Компилятор может изменить имя функции. Например, это может добавить подчеркивание. Чтобы определить, как этот символ появляется в данном файле MEX, используйте команду Linux nm. Например:

    linux> nm timestwo.mexa64 | grep -i mexfunction

    Операционная система отвечает чем-то как:

    0000091c T mexfunction_

    Используйте mexFunction в операторе точки останова. Обязательно используйте правильный случай.

    <gdb> break mexfunction_
    <gdb> continue
  6. Если вы поражаете одну из своих точек останова, можно полностью использовать любые команды, которые отладчик обеспечивает, чтобы исследовать переменные, память отображения, или осмотреть регистры.

    Чтобы проистечь из точки останова, введите continue:

    <gdb> continue
  7. После остановки в последней точке останова введите:

    <gdb> continue

    Концы timestwo и отображения MATLAB:

    y =
    
         8
  8. От посдказки MATLAB можно возвратить управление в отладчик путем ввода:

    >> dbmex stop

    Или, если вы закончены рабочий MATLAB, введите:

    >> quit
  9. Когда вы будете закончены с отладчиком, введите:

    <gdb> quit

    Вы возвращаетесь к подсказке Linux.

Обратитесь к документации, которой предоставляют ваш отладчик для получения дополнительной информации о его использовании.

Похожие темы