GNU® Debugger gdb, доступный в системах Linux®, обеспечивает полную отладку исходного кода, включая способность установить точки останова, исследовать переменные и шаг через исходный код линию за линией.
В этой процедуре командная строка MATLAB® >>
показывают перед командами MATLAB, и linux>
представляет подсказку Linux; ваша система может показать различную подсказку. Подсказкой отладчика является <gdb>
.
Отлаживать с gdb:
Скомпилируйте исходный файл MEX с опцией -g
, которая создает файл с включенной отладочной информацией. В данном примере в подсказке Linux, введите:
linux> mex -g yprime.c
В подсказке Linux запустите gdb отладчик с помощью функции matlab
опция -D
.
linux> matlab -Dgdb
Скажите gdb останавливаться для отладки.
<gdb> handle SIGSEGV SIGBUS nostop noprint <gdb> handle SIGUSR1 stop print
Запустите MATLAB без Виртуальной машины Java® (JVM™) при помощи флага запуска -nojvm
.
<gdb> run -nojvm
В MATLAB позвольте отладить с функцией dbmex
и запустите свой бинарный файл MEX.
>> dbmex on >> yprime(1,1:4)
Вы готовы начать отлаживать.
Часто удобно установить точку останова в mexFunction
, таким образом, вы останавливаетесь в начале стандартной программы шлюза.
<gdb> break mexFunction <gdb> r
Если вы поражаете одну из своих точек останова, можно полностью использовать любые команды, которые отладчик обеспечивает, чтобы исследовать переменные, память отображения, или осмотреть регистры.
Чтобы проистечь из точки останова, введите:
<gdb> continue
После остановки в последней точке останова введите:
<gdb> continue
Концы yprime
и отображения MATLAB:
ans = 2.0000 8.9685 4.0000 -1.0947
От посдказки MATLAB можно возвратить управление в отладчик путем ввода:
>> dbmex stop
Или, если вы закончены рабочий MATLAB, введите:
>> quit
Когда вы будете закончены с отладчиком, введите:
<gdb> quit
Вы возвращаетесь к подсказке Linux.
Обратитесь к документации, которой предоставляют ваш отладчик для получения дополнительной информации о его использовании.