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


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


Отладочные действия при мониторинге можно разделить на следующие категории:

  • сбор данных;
  • анализ данных;
  • профилирование системы;
  • "посмертный" анализ.

1) Сбор данных

Существует несколько способов сбора данных на целевой машине и передачи их менеджеру:

  • Передавать данные на инструментальную сторону по мере их поступления.

    Этот способ применяется при оперативной отладке.

  • Передавать данные в случае заполнения буфера.

    Обычный способ сбора данных при мониторинге.

  • Сохранять данные на диске.

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

    Сбор данных может осуществляться однократно, циклически или непрерывно. При этом отладчик может совершать следующие действия:

  • начать сбор данных (указывается способ сбора, буфер или имя файла, период сбора, время между циклами или время завершения);
  • прервать сбор данных;
  • запланировать начало и/или конец сбора данных по времени, получению сигнала или произошедшему событию.

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

    Один из способов протоколирования событий заключается в том, что на функции, исполнение которых приводит к некоторому событию, ставится специального вида точка прерывания (eventpoint). Такой подход позволяет пользователю определять собственные события (как это сделано в WindView - Wind River Systems, целевая система VxWorks).

    Теперь рассмотрим технологию сбора данных на примере StethoScope (Wind River Systems, целевая система VxWorks). При сборе данных о функции используется механизм вставки исполняемого кода перед и после вызова отлаживаемой функции. Его суть в том, что пользователь может задать функции, вызовы которых будут предварять и завершать исполнение требуемой процедуры. Этот механизм используется и в служебных целях, например при трассировке задачи. Реализовать его можно так: на первую инструкцию отлаживаемой функции ставится точка прерывания, обрабатываемая особым образом, а именно:

    1. ставится точка прерывания на точку возврата из отлаживаемой функции;
    2. передается управление функции, которая должна быть вызвана перед отлаживаемой (если такая определена);
    3. запускается выполнение отлаживаемой функции.

    Затем при обработке второй точки прерывания вызывается функция, реализующая некоторый набор завершающих действий.

    При сборе информации о динамическом выделении памяти можно использовать такой подход (RTILib - Real-Time Innovations, целевая система VxWorks).


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



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