diff options
-rw-r--r-- | breakpoints.c | 12 | ||||
-rw-r--r-- | ltrace.h | 37 | ||||
-rw-r--r-- | process_event.c | 4 | ||||
-rw-r--r-- | sysdeps/linux-gnu/arm/breakpoint.c | 4 | ||||
-rw-r--r-- | sysdeps/linux-gnu/breakpoint.c | 12 | ||||
-rw-r--r-- | sysdeps/linux-gnu/ia64/breakpoint.c | 4 | ||||
-rw-r--r-- | sysdeps/linux-gnu/trace.c | 4 |
7 files changed, 38 insertions, 39 deletions
diff --git a/breakpoints.c b/breakpoints.c index 043ed56..87093d5 100644 --- a/breakpoints.c +++ b/breakpoints.c @@ -18,7 +18,7 @@ /*****************************************************************************/ -struct breakpoint * +Breakpoint * address2bpstruct(Process *proc, void *addr) { return dict_find_entry(proc->breakpoints, addr); } @@ -26,7 +26,7 @@ address2bpstruct(Process *proc, void *addr) { void insert_breakpoint(Process *proc, void *addr, struct library_symbol *libsym) { - struct breakpoint *sbp; + Breakpoint *sbp; debug(1, "symbol=%s, addr=%p", libsym?libsym->name:"(nil)", addr); if (!addr) @@ -37,7 +37,7 @@ insert_breakpoint(Process *proc, void *addr, sbp = dict_find_entry(proc->breakpoints, addr); if (!sbp) { - sbp = calloc(1, sizeof(struct breakpoint)); + sbp = calloc(1, sizeof(Breakpoint)); if (!sbp) { return; /* TODO FIXME XXX: error_mem */ } @@ -58,7 +58,7 @@ insert_breakpoint(Process *proc, void *addr, void delete_breakpoint(Process *proc, void *addr) { - struct breakpoint *sbp = dict_find_entry(proc->breakpoints, addr); + Breakpoint *sbp = dict_find_entry(proc->breakpoints, addr); assert(sbp); /* FIXME: remove after debugging has been done. */ /* This should only happen on out-of-memory conditions. */ if (sbp == NULL) @@ -72,7 +72,7 @@ delete_breakpoint(Process *proc, void *addr) { static void enable_bp_cb(void *addr, void *sbp, void *proc) { - if (((struct breakpoint *)sbp)->enabled) { + if (((Breakpoint *)sbp)->enabled) { enable_breakpoint(((Process *)proc)->pid, sbp); } } @@ -136,7 +136,7 @@ enable_all_breakpoints(Process *proc) { static void disable_bp_cb(void *addr, void *sbp, void *proc) { - if (((struct breakpoint *)sbp)->enabled) { + if (((Breakpoint *)sbp)->enabled) { disable_breakpoint(((Process *)proc)->pid, sbp); } } @@ -19,9 +19,10 @@ extern char *command; -extern int exiting; /* =1 if we have to exit ASAP */ +extern int exiting; /* =1 if we have to exit ASAP */ -struct breakpoint { +typedef struct Breakpoint Breakpoint; +struct Breakpoint { void *addr; unsigned char orig_value[BREAKPOINT_LENGTH]; int enabled; @@ -133,7 +134,7 @@ extern char *PLTs_initialized_by_here; struct library_symbol { char *name; void *enter_addr; - struct breakpoint *brkpnt; + Breakpoint *brkpnt; char needs_init; enum toplt plt_type; char is_weak; @@ -156,21 +157,21 @@ typedef enum Process_State Process_State; enum Process_State { STATE_ATTACHED, STATE_NEW, - STATE_FUTURE_CHILD, + STATE_FUTURE_FORK, STATE_FUTURE_CLONE }; typedef struct Process Process; struct Process { Process_State state; - Process *parent; /* needed by STATE_FUTURE_CHILD and STATE_FUTURE_CLONE */ + Process *parent; /* needed by STATE_FUTURE_{FORK,CLONE} */ char *filename; pid_t pid; struct dict *breakpoints; - int breakpoints_enabled; /* -1:not enabled yet, 0:disabled, 1:enabled */ - int mask_32bit; /* 1 if 64-bit ltrace is tracing 32-bit process. */ + int breakpoints_enabled; /* -1:not enabled yet, 0:disabled, 1:enabled */ + int mask_32bit; /* 1 if 64-bit ltrace is tracing 32-bit process */ unsigned int personality; - int tracesysgood; /* signal indicating a PTRACE_SYSCALL trap */ + int tracesysgood; /* signal indicating a PTRACE_SYSCALL trap */ int callstack_depth; struct callstack_element callstack[MAX_CALLDEPTH]; @@ -178,14 +179,14 @@ struct Process { /* Arch-dependent: */ void *instruction_pointer; - void *stack_pointer; /* To get return addr, args... */ + void *stack_pointer; /* To get return addr, args... */ void *return_addr; - struct breakpoint *breakpoint_being_enabled; + Breakpoint *breakpoint_being_enabled; void *arch_ptr; short e_machine; short need_to_reinitialize_breakpoints; #ifdef __arm__ - int thumb_mode; /* ARM execution mode: 0: ARM mode, 1: Thumb mode */ + int thumb_mode; /* ARM execution mode: 0: ARM, 1: Thumb */ #endif /* output: */ @@ -234,10 +235,9 @@ extern Process * pid2proc(pid_t pid); extern void process_event(struct event *event); extern void execute_program(Process *, char **); extern int display_arg(enum tof type, Process *proc, int arg_num, arg_type_info *info); -extern struct breakpoint *address2bpstruct(Process *proc, void *addr); +extern Breakpoint *address2bpstruct(Process *proc, void *addr); extern void breakpoints_init(Process *proc); -extern void insert_breakpoint(Process *proc, void *addr, - struct library_symbol *libsym); +extern void insert_breakpoint(Process *proc, void *addr, struct library_symbol *libsym); extern void delete_breakpoint(Process *proc, void *addr); extern void enable_all_breakpoints(Process *proc); extern void disable_all_breakpoints(Process *proc); @@ -259,17 +259,16 @@ extern void *get_instruction_pointer(Process *proc); extern void set_instruction_pointer(Process *proc, void *addr); extern void *get_stack_pointer(Process *proc); extern void *get_return_addr(Process *proc, void *stack_pointer); -extern void enable_breakpoint(pid_t pid, struct breakpoint *sbp); -extern void disable_breakpoint(pid_t pid, const struct breakpoint *sbp); +extern void enable_breakpoint(pid_t pid, Breakpoint *sbp); +extern void disable_breakpoint(pid_t pid, const Breakpoint *sbp); extern int fork_p(Process *proc, int sysnum); extern int exec_p(Process *proc, int sysnum); extern int was_exec(Process *proc, int status); extern int syscall_p(Process *proc, int status, int *sysnum); extern void continue_process(pid_t pid); extern void continue_after_signal(pid_t pid, int signum); -extern void continue_after_breakpoint(Process *proc, - struct breakpoint *sbp); -extern void continue_enabling_breakpoint(pid_t pid, struct breakpoint *sbp); +extern void continue_after_breakpoint(Process *proc, Breakpoint *sbp); +extern void continue_enabling_breakpoint(pid_t pid, Breakpoint *sbp); extern long gimme_arg(enum tof type, Process *proc, int arg_num, arg_type_info *info); extern void save_register_args(enum tof type, Process *proc); extern int umovestr(Process *proc, void *addr, int len, void *laddr); diff --git a/process_event.c b/process_event.c index 57a80fa..de2b74d 100644 --- a/process_event.c +++ b/process_event.c @@ -337,14 +337,14 @@ process_arch_sysret(struct event *event) { static void process_breakpoint(struct event *event) { int i, j; - struct breakpoint *sbp; + Breakpoint *sbp; debug(2, "event: breakpoint (%p)", event->e_un.brk_addr); #ifdef __powerpc__ /* Need to skip following NOP's to prevent a fake function from being stacked. */ long stub_addr = (long) get_count_register(event->proc); - struct breakpoint *stub_bp = NULL; + Breakpoint *stub_bp = NULL; char nop_instruction[] = PPC_NOP; stub_bp = address2bpstruct (event->proc, event->e_un.brk_addr); diff --git a/sysdeps/linux-gnu/arm/breakpoint.c b/sysdeps/linux-gnu/arm/breakpoint.c index d60e325..4c20260 100644 --- a/sysdeps/linux-gnu/arm/breakpoint.c +++ b/sysdeps/linux-gnu/arm/breakpoint.c @@ -30,7 +30,7 @@ #include "debug.h" void -arch_enable_breakpoint(pid_t pid, struct breakpoint *sbp) { +arch_enable_breakpoint(pid_t pid, Breakpoint *sbp) { unsigned int i, j; const unsigned char break_insn[] = BREAKPOINT_VALUE; const unsigned char thumb_break_insn[] = THUMB_BREAKPOINT_VALUE; @@ -57,7 +57,7 @@ arch_enable_breakpoint(pid_t pid, struct breakpoint *sbp) { } void -arch_disable_breakpoint(pid_t pid, const struct breakpoint *sbp) { +arch_disable_breakpoint(pid_t pid, const Breakpoint *sbp) { unsigned int i, j; const unsigned char break_insn[] = BREAKPOINT_VALUE; const unsigned char thumb_break_insn[] = THUMB_BREAKPOINT_VALUE; diff --git a/sysdeps/linux-gnu/breakpoint.c b/sysdeps/linux-gnu/breakpoint.c index aa2b0f4..5a56bd3 100644 --- a/sysdeps/linux-gnu/breakpoint.c +++ b/sysdeps/linux-gnu/breakpoint.c @@ -12,14 +12,14 @@ static unsigned char break_insn[] = BREAKPOINT_VALUE; #ifdef ARCH_HAVE_ENABLE_BREAKPOINT -extern void arch_enable_breakpoint(pid_t, struct breakpoint *); +extern void arch_enable_breakpoint(pid_t, Breakpoint *); void -enable_breakpoint(pid_t pid, struct breakpoint *sbp) { +enable_breakpoint(pid_t pid, Breakpoint *sbp) { arch_enable_breakpoint(pid, sbp); } #else void -enable_breakpoint(pid_t pid, struct breakpoint *sbp) { +enable_breakpoint(pid_t pid, Breakpoint *sbp) { unsigned int i, j; debug(1, "enable_breakpoint(%d,%p)", pid, sbp->addr); @@ -42,14 +42,14 @@ enable_breakpoint(pid_t pid, struct breakpoint *sbp) { #endif /* ARCH_HAVE_ENABLE_BREAKPOINT */ #ifdef ARCH_HAVE_DISABLE_BREAKPOINT -extern void arch_disable_breakpoint(pid_t, const struct breakpoint *sbp); +extern void arch_disable_breakpoint(pid_t, const Breakpoint *sbp); void -disable_breakpoint(pid_t pid, const struct breakpoint *sbp) { +disable_breakpoint(pid_t pid, const Breakpoint *sbp) { arch_disable_breakpoint(pid, sbp); } #else void -disable_breakpoint(pid_t pid, const struct breakpoint *sbp) { +disable_breakpoint(pid_t pid, const Breakpoint *sbp) { unsigned int i, j; debug(2, "disable_breakpoint(%d,%p)", pid, sbp->addr); diff --git a/sysdeps/linux-gnu/ia64/breakpoint.c b/sysdeps/linux-gnu/ia64/breakpoint.c index 2d741bb..4f09173 100644 --- a/sysdeps/linux-gnu/ia64/breakpoint.c +++ b/sysdeps/linux-gnu/ia64/breakpoint.c @@ -153,7 +153,7 @@ union bundle_t { }; void -arch_enable_breakpoint(pid_t pid, struct breakpoint *sbp) { +arch_enable_breakpoint(pid_t pid, Breakpoint *sbp) { unsigned long addr = (unsigned long)sbp->addr; union bundle_t bundle; @@ -190,7 +190,7 @@ arch_enable_breakpoint(pid_t pid, struct breakpoint *sbp) { } void -arch_disable_breakpoint(pid_t pid, const struct breakpoint *sbp) { +arch_disable_breakpoint(pid_t pid, const Breakpoint *sbp) { unsigned long addr = (unsigned long)sbp->addr; int slotnum = (int)(addr & 0x0f) & 0x3; diff --git a/sysdeps/linux-gnu/trace.c b/sysdeps/linux-gnu/trace.c index 670a700..cbda70b 100644 --- a/sysdeps/linux-gnu/trace.c +++ b/sysdeps/linux-gnu/trace.c @@ -230,13 +230,13 @@ continue_process(pid_t pid) { } void -continue_enabling_breakpoint(pid_t pid, struct breakpoint *sbp) { +continue_enabling_breakpoint(pid_t pid, Breakpoint *sbp) { enable_breakpoint(pid, sbp); continue_process(pid); } void -continue_after_breakpoint(Process *proc, struct breakpoint *sbp) { +continue_after_breakpoint(Process *proc, Breakpoint *sbp) { if (sbp->enabled) disable_breakpoint(proc->pid, sbp); set_instruction_pointer(proc, sbp->addr); |