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

GNU® Debugger gdb, доступный в системах Linux®, обеспечивает полную отладку исходного кода, включая способность установить точки останова, исследовать переменные и шаг через исходный код линию за линией.

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

Этот пример показывает общие шаги, чтобы отладить yprime.c, найденный в fullfile(matlabroot,'extern','examples','mex') MATLAB папка.

Отлаживать с gdb:

  1. Скомпилируйте исходный файл MEX с -g опция, которая создает файл с включенной отладочной информацией. В данном примере в подсказке Linux, введите:

    linux> mex -g yprime.c
  2. В подсказке Linux запустите gdb отладчик с помощью matlab функциональный -D опция.

    linux> matlab -Dgdb
    
  3. Скажите gdb останавливаться для отладки.

    <gdb> handle SIGSEGV SIGBUS nostop noprint
    <gdb> handle SIGUSR1 stop print
    
  4. Запустите MATLAB без Виртуальной машины Java® (JVM™) при помощи -nojvm запустите флаг.

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

    >> dbmex on
    >> yprime(1,1:4)
  6. Вы готовы начать отлаживать.

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

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

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

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

    <gdb> continue

    yprime концы и отображения MATLAB:

    ans =
    
        2.0000    8.9685    4.0000   -1.0947
    
  9. От подсказки MATLAB можно возвратить управление в отладчик путем ввода:

    >> dbmex stop

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

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

    <gdb> quit

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

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

Смотрите также