Средства разработки приложений


Отладочные действия - часть 3


Подобный подход реализован в отладчике X-ray (Microtec Division, целевая система VRTX).

3) Получение информации

Когда задача остановилась, становится возможным осуществлять сбор различных данных, которые могут помочь при локализации логических ошибок в программе.

  • Просмотр содержимого стека.

    Эта команда дает возможность увидеть, как задача попала в текущее положение. Каждый кадр стека содержит данные, связанные с вызовом некоторой функции, включая ее аргументы, локальные переменные и адрес точки вызова.

  • Просмотр таблицы символов.

    Используя отладчик, можно получать доступ к информации о символах (имена переменных, функций и типов), определенных в задаче. Эта информация состоит из имени, типа и адреса соответствующей переменной или функции.

  • Просмотр исходных файлов.

    Пользователь может выборочно смотреть исходный текст программы, задавая номера строк, имена функций или некоторый адрес.

  • Просмотр данных.

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

    Кроме того, у пользователя может возникнуть необходимость осуществить в процессе сеанса отладки вызов некоторой функции. Для поддержки этого существуют различные способы, например, можно передать соответствующий запрос агенту отладки, и тот запустит требуемую функцию либо в контексте отлаживаемой в данный момент задачи, либо в некотором специальном контексте. В GDB (GNU debugger, Free Software Foundation) реализован другой механизм, суть которого заключается в том, что все предварительные действия (установка точки выполнения, и.т.д.) производятся на инструментальной стороне, а агенту передается запрос на выполнение с текущего адреса.

4) Продолжение/изменение выполнения

Особенностью активной отладки является возможность изменения выполнения задачи.

  • Изменение данных.

    Отладчик имеет возможность изменять значения переменных, содержимое регистров и памяти. Это позволяет корректировать выполнение задачи, проверяя предположения об ошибках в ее коде.

  • Продолжение выполнения задачи с любого адреса.

    Пользователь может потребовать продолжить выполнение задачи с другого адреса (например, обходя критический участок кода).

  • Продолжение выполнения задачи до некоторого адреса.

    В этом случае ставится временная точка прерывания на нужный адрес, и задача выполняется, пока этот адрес не будет достигнут.


    Начало  Назад  Вперед



    Книжный магазин