DCMD_PROC_SET_FLAG

Установка debug-флага процессу

Прототип:

#include <sys/debug.h>
#include <sys/procfs.h>
#define DCMD_PROC_SET_FLAG __DIOT( _DCMD_PROC, __PROC_SUBCMD_PROCFS + 18, uint32_t )

Аргументы:

filedes
Файловый дескриптор процесса (открытый файл /proc/PID/as).
dcmd
DCMD_PROC_SET_FLAG.
dev_data_ptr
Указатель на uint32_t.
n_bytes
Размер типа uint32_t, полученный с помсощью sizeof().
dev_info_ptr
NULL.

Описание:

Команда используется в сочетании с вызовом devctl(), а все перечисленные аргументы являются его типовыми параметрами. Команда позволяет установить debug-флаги процессу, ассоциированному с filedes.

Для удаления debug-флагов следует использовать команду DCMD_PROC_CLEAR_FLAG.

Исходящие данные:

Маска флагов, включающая:

_DEBUG_FLAG_STOPPED
Поток не запущен.
_DEBUG_FLAG_ISTOP
Остановлен на точке интереса.
_DEBUG_FLAG_IPINVAL
Регистр IP не является корректным.
_DEBUG_FLAG_ISSYS
Системный процесс.
_DEBUG_FLAG_SSTEP
Остановлен после одиночного шага отладки (single step).
_DEBUG_FLAG_CURTID
Поток является текущим.
_DEBUG_FLAG_TRACE_EXEC
Остановлен на точке остановки (breakpoint).
_DEBUG_FLAG_TRACE_RD
Остановлен на попытке осуществить доступ по чтению (read access).
_DEBUG_FLAG_TRACE_WR
Остановлен на попытке осуществить доступ по записи (write access).
_DEBUG_FLAG_TRACE_MODIFY
Остановлен по причине модификации памяти.
_DEBUG_FLAG_RLC
Установлен флаг Run-on-Last-Close.
_DEBUG_FLAG_KLC
Установлен флаг Kill-on-Last-Close.
_DEBUG_FLAG_FORK
Потомок наследует флаги (остановка при вызове fork() или spawn()).
_DEBUG_FLAG_MASK
Маска флагов, которые могут быть изменены. Включает _DEBUG_FLAG_RLC, _DEBUG_FLAG_KLC и _DEBUG_FLAG_FORK.

Входящие данные:

Отсутствуют.

Примеры:

int flags = _DEBUG_FLAG_KLC; /* Kill-on-Last-Close flag */
devctl( fd, DCMD_PROC_SET_FLAG, &flags, sizeof( flags ), NULL );

Тематические ссылки:

pthread_join(), MsgReply(), InterruptWait(), MsgDeliverEvent(), MsgReceive(), MsgSend(), MsgSendPulse(), nanosleep(), pthread_cancel(), pthread_cond_wait(), pthread_create(), pthread_exit(), pthread_mutex_lock(), sigaction(), struct sigaction, SignalAction(), SignalKill(), sigsuspend(), sigwaitinfo(), SyncSemWait(), ThreadCreate()




Предыдущий раздел: перейти