Lines Matching refs:proc

41 #include "proc.h"
45 arch_translate_address_dyn(struct process *proc,
63 breakpoint_on_hit(struct breakpoint *bp, struct process *proc)
67 (bp->cbs->on_hit)(bp, proc);
71 breakpoint_on_continue(struct breakpoint *bp, struct process *proc)
75 (bp->cbs->on_continue)(bp, proc);
77 continue_after_breakpoint(proc, bp);
81 breakpoint_on_retract(struct breakpoint *bp, struct process *proc)
85 (bp->cbs->on_retract)(bp, proc);
89 breakpoint_on_install(struct breakpoint *bp, struct process *proc)
93 (bp->cbs->on_install)(bp, proc);
98 struct breakpoint *bp, struct process *proc)
102 return (bp->cbs->get_return_bp)(ret, bp, proc);
104 if ((*ret = create_default_return_bp(proc)) == NULL)
113 address2bpstruct(struct process *proc, arch_addr_t addr)
115 assert(proc != NULL);
116 assert(proc->breakpoints != NULL);
117 assert(proc->leader == proc);
118 debug(DEBUG_FUNCTION, "address2bpstruct(pid=%d, addr=%p)", proc->pid, addr);
121 if (DICT_FIND_VAL(proc->breakpoints, &addr, &found) < 0)
128 os_breakpoint_init(struct process *proc, struct breakpoint *sbp)
147 arch_breakpoint_init(struct process *proc, struct breakpoint *sbp)
180 breakpoint_init(struct breakpoint *bp, struct process *proc,
184 if (os_breakpoint_init(proc, bp) < 0)
186 if (arch_breakpoint_init(proc, bp) < 0) {
234 breakpoint_turn_on(struct breakpoint *bp, struct process *proc)
238 assert(proc->pid != 0);
239 enable_breakpoint(proc, bp);
240 breakpoint_on_install(bp, proc);
246 breakpoint_turn_off(struct breakpoint *bp, struct process *proc)
250 disable_breakpoint(proc, bp);
256 create_default_return_bp(struct process *proc)
259 arch_addr_t return_addr = get_return_addr(proc, proc->stack_pointer);
261 || breakpoint_init(bp, proc, return_addr, NULL) < 0) {
269 insert_breakpoint_at(struct process *proc, arch_addr_t addr,
274 proc->pid, addr, libsym ? libsym->name : "NULL");
279 if (bp == NULL || breakpoint_init(bp, proc, addr, libsym) < 0) {
292 struct breakpoint *tmp = insert_breakpoint(proc, bp);
301 insert_breakpoint(struct process *proc, struct breakpoint *bp)
305 struct process *leader = proc->leader;
323 if (breakpoint_turn_on(ext_bp, proc) < 0) {
333 delete_breakpoint_at(struct process *proc, arch_addr_t addr)
336 proc->pid, addr);
338 struct process *leader = proc->leader;
345 if (delete_breakpoint(proc, bp) < 0) {
352 delete_breakpoint(struct process *proc, struct breakpoint *bp)
354 struct process *leader = proc->leader;
357 if (breakpoint_turn_off(bp, proc) < 0)
386 struct process *proc = data;
387 debug(DEBUG_FUNCTION, "disable_bp_cb(pid=%d)", proc->pid);
389 disable_breakpoint(proc, *bpp);
394 disable_all_breakpoints(struct process *proc)
396 debug(DEBUG_FUNCTION, "disable_all_breakpoints(pid=%d)", proc->pid);
397 assert(proc->leader == proc);
398 DICT_EACH(proc->breakpoints, arch_addr_t, struct breakpoint *,
399 NULL, disable_bp_cb, proc);
403 entry_breakpoint_on_hit(struct breakpoint *bp, struct process *proc)
405 if (proc == NULL || proc->leader == NULL)
407 delete_breakpoint_at(proc, bp->addr);
408 process_hit_start(proc);
412 entry_breakpoint_init(struct process *proc,
417 int err = breakpoint_init(bp, proc, addr, NULL);
429 breakpoints_init(struct process *proc)
431 debug(DEBUG_FUNCTION, "breakpoints_init(pid=%d)", proc->pid);
435 assert(proc->breakpoints != NULL);
438 assert(proc->leader == proc);
442 assert(proc->filename != NULL);
444 struct library *lib = ltelf_read_main_binary(proc, proc->filename);
452 proc_remove_library(proc, lib);
453 proc_remove_breakpoint(proc, entry_bp);
465 || (entry_breakpoint_init(proc, entry_bp,
469 "Some tracing events may be missed.\n", proc->pid);
475 if ((result = proc_add_breakpoint(proc, entry_bp)) < 0)
479 if ((result = breakpoint_turn_on(entry_bp, proc)) < 0)
482 proc_add_library(proc, lib);
484 proc->callstack_depth = 0;