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

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

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

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

Для отладки с 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.

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

См. также