Структура данных характеризует состояние потока отлаживаемого процесса
#include <sys/debug.h>typedef struct _debug_thread_info {pid_t pid;pthread_t tid;_Uint32t flags;_Uint16t why;_Uint16t what;_Uint64t ip;_Uint64t sp;_Uint64t stkbase;_Uint64t tls;_Uint32t stksize;_Uint32t tid_flags;_Uint8t priority;_Uint8t real_priority;_Uint8t policy;_Uint8t state;_Int16t syscall;_Uint16t last_cpu;_Uint32t timeout;_Int32t last_chid;sigset_t sig_blocked;sigset_t sig_pending;siginfo_t info;union {struct {pthread_t tid;} join;struct {_Int32t id;_Uintptrt sync;} sync;struct {_Uint32t nd;pid_t pid;_Int32t coid;_Int32t chid;_Int32t scoid;} connect;struct {_Int32t chid;} channel;struct {pid_t pid;_Uintptrt vaddr;_Uint32t flags;} waitpage;struct {_Uint32t size;} stack;_Uint64t filler[4];} blocked;_Uint64t start_time; /* thread start time in nsec */_Uint64t sutime; /* thread system + user running time in nsec */_Uint8t extsched[8];_Uint64t nsec_since_block; /* how long thread has been blocked. 0 for STATE_READY or STATE_RUNNING.in nsec, but ms resolution. */_Uint64t reserved2[4];} debug_thread_t;typedef debug_thread_t procfs_status;
Структура procfs_status характеризует состояние потока отлаживаемого процесса. Основные поля структуры включают:
0. _NTO_TF_* в <sys/neutrino.h>). __KER_* в <sys/kercalls.h>). _NTO_TF_ACTIVE | _NTO_TF_IMMEDIATE | (1 << state)). 0 при состояниях STATE_READY или STATE_RUNNING. Поля структуры, зависящие от различных состояний блокировки потока:
STATE_JOIN или STATE_WAITTHREAD. STATE_CONDVAR, STATE_MUTEX или STATE_SEM). Поле id соджержит адрес объекта синхронизации. Поле sync для условной переменной содержит указатель на связанный мьютекс и указатель на сам мьютекс в противном случае. STATE_SEND или STATE_REPLY). STATE_RECEIVE). STATE_WAITPAGE). pid – идентификатор процесса, который был активен при возникновении page-fault. vaddr – виртуальный адрес, для которого ожидается выделение физической памяти. STATE_STACK). ЗОСРВ «Нейтрино»
devctl(), DCMD_PROC_STATUS, DCMD_PROC_STOP, DCMD_PROC_TIDSTATUS, DCMD_PROC_WAITSTOP
Предыдущий раздел: перейти