Структура данных характеризует точку остановки отлаживаемого процесса
#include <sys/debug.h>
typedef struct _debug_break {
_Uint16t type;
_Int16t size;
_Uintptrt addr;
} debug_break_t;
typedef debug_break_t procfs_break;
Структура procfs_break
характеризует точку остановки отлаживаемого процесса. Поля структуры включают:
- type
- Тип точки остановки, заданный с помощью типа
enum _debug_break_type
: - _DEBUG_BREAK_EXEC
- Точка остановки (breakpoint) при исполнении.
- _DEBUG_BREAK_RD
- Доступ по чтению (ошибка при отсутствии поддержки).
- _DEBUG_BREAK_WR
- Доступ по записи (ошибка при отсутствии поддержки).
- _DEBUG_BREAK_RW
- Доступ по чтению или записи (ошибка при отсутствии поддержки).
- _DEBUG_BREAK_MODIFY
- Модификация памяти.
- _DEBUG_BREAK_RDM
- Доступ по чтению, если поддерживается, в противном случае - модификация.
- _DEBUG_BREAK_WRM
- Доступ по записи, если поддерживается, в противном случае - модификация.
- _DEBUG_BREAK_RWM
- Доступ по чтению или записи, если поддерживается, в противном случае - модификация.
- _DEBUG_BREAK_MASK
- Маска сопоставления для замены или модификации точки остановки.
- _DEBUG_BREAK_HW
- Использовать только аппаратную отладку (без пошаговой отладки с проверками (singlestep and checking) или записи заведомо некорректных инструкций в код).
- _DEBUG_BREAK_SOFT
- Точка остановки вставлена или удалена во время переключения контекста.
- size
- Значения от
1
до 8
говорят о необходимости модификации точки остановки. -1
используется для её удаления. Подробнее см. на странице DCMD_PROC_BREAK. - addr
- Адрес точки остановки.
ЗОСРВ «Нейтрино»
devctl(), DCMD_PROC_BREAK, DCMD_PROC_GET_BREAKLIST
Предыдущий раздел: перейти