aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--breakpoints.c12
-rw-r--r--ltrace.h37
-rw-r--r--process_event.c4
-rw-r--r--sysdeps/linux-gnu/arm/breakpoint.c4
-rw-r--r--sysdeps/linux-gnu/breakpoint.c12
-rw-r--r--sysdeps/linux-gnu/ia64/breakpoint.c4
-rw-r--r--sysdeps/linux-gnu/trace.c4
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);
}
}
diff --git a/ltrace.h b/ltrace.h
index e96cd1c..693a185 100644
--- a/ltrace.h
+++ b/ltrace.h
@@ -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);