Структура данных характеризует параметры возобновления исполнения отлаживаемого процесса
#include <sys/debug.h>
typedef struct _debug_run {
uint32_t flags;
pthread_t tid;
sigset_t trace;
sigset_t hold;
fltset_t fault;
uintptr_t ip;
} debug_run_t;
typedef debug_run_t procfs_run;
Структура procfs_run
характеризует параметры возобновления исполнения отлаживаемого процесса. Поля структуры включают:
- flags
-
0
или комбинация флагов: - _DEBUG_RUN_CLRSIG
- Очистка ожидающих сигналов.
- _DEBUG_RUN_CLRFLT
- Очистка ожидающей ошибки (fault).
- _DEBUG_RUN_TRACE
- Маска trace характеризует интересующие сигналы.
- _DEBUG_RUN_HOLD
- Не используется.
- _DEBUG_RUN_FAULT
- Макса fault характеризует интересующие ошибки (faults).
- _DEBUG_RUN_VADDR
- Изменить регистр IP (Instruction Pointer) перед возобновлением исполнения.
- _DEBUG_RUN_STEP
- Отлаживать в пошаговом режиме (single-step) только один поток.
- _DEBUG_RUN_STEP_ALL
- Отлаживать в пошаговом режиме (single-step) один поток, а остальные просто запустить.
- _DEBUG_RUN_CURTID
- Изменить текущий поток (целевой) на указанный в поле tid.
- _DEBUG_RUN_ARM
- Доставить событие при достижении точки интереса. Само событие задаётся командой DCMD_PROC_EVENT.
- tid
- Идентификатор потока, который должен стать текущим при установке флага
_DEBUG_RUN_CURTID
. - trace
- Набор сигналов (см. SIG*) для трассировки, используемый совместно с флагом
_DEBUG_RUN_TRACE
. - hold
- Не используется.
- fault
- Набор ошибок (fault) (см. FLT*) для трассировки, используемый совместно с флагом
_DEBUG_RUN_FAULT
. - ip
- Новое значение регистра IP (Instruction Pointer), используемое совместно с флагом
_DEBUG_RUN_VADDR
.
 | Используйте sigemptyset() и sigaddset() для формирования наборов сигналов или ошибок для полей структуры trace, hold и fault. |
ЗОСРВ «Нейтрино»
devctl(), DCMD_PROC_RUN, sigaddset(), sigemptyset(), siginfo_t, SignalAction()
Предыдущий раздел: перейти