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

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

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

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

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

Для файлов MEX, скомпилированных с любой версией компилятора Intel® Visual Fortran, можно использовать средства отладки, найденные в версии Microsoft® Visual Studio®.

Отладка на платформах 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 отладчик с помощью matlab -D опция:

    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.

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

Похожие темы