GNU® Debugger gdb, доступный в системах Linux®, обеспечивает полную отладку исходного кода, включая способность установить точки останова, исследовать переменные и шаг через исходный код линию за линией.
В этой процедуре, командная строка MATLAB® >>
показан перед командами MATLAB и linux>
представляет подсказку Linux; ваша система может показать различную подсказку. Подсказкой отладчика является <gdb>
.
Этот пример показывает общие шаги, чтобы отладить yprime.c
, найденный в fullfile(matlabroot,'extern','examples','mex')
MATLAB папка.
Отлаживать с 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.
Обратитесь к документации, которой предоставляют ваш отладчик для получения дополнительной информации о его использовании.