| /netbsd-src/external/bsd/libproc/dist/ |
| H A D | proc_util.c | 45 proc_clearflags(struct proc_handle *phdl, int mask) in proc_clearflags() argument 48 if (phdl == NULL) in proc_clearflags() 51 phdl->flags &= ~mask; in proc_clearflags() 60 proc_continue(struct proc_handle *phdl) in proc_continue() argument 64 if (phdl == NULL) in proc_continue() 67 if (phdl->status == PS_STOP && WSTOPSIG(phdl->wstat) != SIGTRAP) in proc_continue() 68 pending = WSTOPSIG(phdl->wstat); in proc_continue() 69 if (ptrace(PT_CONTINUE, phdl->pid, (void *)(uintptr_t)1, pending) != 0) in proc_continue() 72 phdl->status = PS_RUN; in proc_continue() 78 proc_detach(struct proc_handle *phdl, int reason) in proc_detach() argument [all …]
|
| H A D | proc_rtld.c | 47 struct proc_handle *phdl = arg; in map_iter() local 49 if (phdl->nobjs >= phdl->rdobjsz) { in map_iter() 50 phdl->rdobjsz *= 2; in map_iter() 51 if (reallocarr(&phdl->rdobjs, sizeof(*phdl->rdobjs), in map_iter() 52 phdl->rdobjsz)) in map_iter() 55 if (strcmp(lop->rdl_path, phdl->execname) == 0 && in map_iter() 57 phdl->rdexec = &phdl->rdobjs[phdl->nobjs]; in map_iter() 58 memcpy(&phdl->rdobjs[phdl->nobjs++], lop, sizeof(*lop)); in map_iter() 64 proc_rdagent(struct proc_handle *phdl) in proc_rdagent() argument 66 if (phdl->rdap == NULL && phdl->status != PS_UNDEAD && in proc_rdagent() [all …]
|
| H A D | proc_bkpt.c | 55 proc_stop(struct proc_handle *phdl) in proc_stop() argument 59 if (kill(proc_getpid(phdl), SIGSTOP) == -1) { in proc_stop() 60 DPRINTF("kill %d", proc_getpid(phdl)); in proc_stop() 62 } else if (waitpid(proc_getpid(phdl), &status, WSTOPPED) == -1) { in proc_stop() 63 DPRINTF("waitpid %d", proc_getpid(phdl)); in proc_stop() 74 proc_bkptset(struct proc_handle *phdl, uintptr_t address, in proc_bkptset() argument 82 if (phdl->status == PS_DEAD || phdl->status == PS_UNDEAD || in proc_bkptset() 83 phdl->status == PS_IDLE) { in proc_bkptset() 91 if (phdl->status != PS_STOP) { in proc_bkptset() 92 if (proc_stop(phdl) != 0) in proc_bkptset() [all …]
|
| H A D | proc_create.c | 48 proc_init(pid_t pid, int flags, int status, struct proc_handle *phdl) in proc_init() argument 54 memset(phdl, 0, sizeof(*phdl)); in proc_init() 55 phdl->pid = pid; in proc_init() 56 phdl->flags = flags; in proc_init() 57 phdl->status = status; in proc_init() 63 len = sizeof(phdl->execname); in proc_init() 64 if (sysctl(mib, 4, phdl->execname, &len, NULL, 0) != 0) { in proc_init() 70 phdl->execname[0] = '\0'; in proc_init() 85 phdl->model = (kp.p_flag & P_32) ? PR_MODEL_ILP32 : PR_MODEL_LP64; in proc_init() 87 phdl->model = PR_MODEL_ILP32; in proc_init() [all …]
|
| H A D | proc_regs.c | 48 proc_regget(struct proc_handle *phdl, proc_reg_t reg, unsigned long *regvalue) in proc_regget() argument 52 if (phdl->status == PS_DEAD || phdl->status == PS_UNDEAD || in proc_regget() 53 phdl->status == PS_IDLE) { in proc_regget() 58 if (ptrace(PT_GETREGS, proc_getpid(phdl), ®s, 0) < 0) in proc_regget() 84 proc_regset(struct proc_handle *phdl, proc_reg_t reg, unsigned long regvalue) in proc_regset() argument 88 if (phdl->status == PS_DEAD || phdl->status == PS_UNDEAD || in proc_regset() 89 phdl->status == PS_IDLE) { in proc_regset() 93 if (ptrace(PT_GETREGS, proc_getpid(phdl), ®s, 0) < 0) in proc_regset() 114 if (ptrace(PT_SETREGS, proc_getpid(phdl), ®s, 0) < 0) in proc_regset()
|
| /netbsd-src/external/bsd/libproc/dist/tests/ |
| H A D | proc_test.c | 77 struct proc_handle *phdl; in start_prog() local 91 error = proc_create(argv[0], argv, NULL, NULL, &phdl); in start_prog() 93 ATF_REQUIRE(phdl != NULL); in start_prog() 98 return (phdl); in start_prog() 102 set_bkpt(struct proc_handle *phdl, uintptr_t addr, proc_breakpoint_t *saved) in set_bkpt() argument 106 error = proc_bkptset(phdl, addr, saved); in set_bkpt() 112 remove_bkpt(struct proc_handle *phdl, uintptr_t addr, proc_breakpoint_t *val) in remove_bkpt() argument 116 error = proc_bkptdel(phdl, addr, val); in remove_bkpt() 120 error = proc_regset(phdl, REG_PC, addr); in remove_bkpt() 128 verify_bkpt(struct proc_handle *phdl, GElf_Sym *sym, const char *symname, in verify_bkpt() argument [all …]
|