diff options
-rw-r--r-- | README | 3 | ||||
-rw-r--r-- | debian/changelog | 8 | ||||
-rw-r--r-- | debian/control | 2 | ||||
-rw-r--r-- | sysdeps/linux-gnu/arm/regs.c | 2 | ||||
-rw-r--r-- | sysdeps/linux-gnu/m68k/regs.c | 2 | ||||
-rw-r--r-- | sysdeps/linux-gnu/ppc/regs.c | 2 | ||||
-rw-r--r-- | sysdeps/linux-gnu/s390/regs.c | 2 | ||||
-rw-r--r-- | sysdeps/linux-gnu/sparc/regs.c | 16 | ||||
-rw-r--r-- | sysdeps/linux-gnu/x86_64/regs.c | 8 |
9 files changed, 27 insertions, 18 deletions
@@ -30,6 +30,7 @@ people have contributed significantly to this project: * Anton Blanchard <anton@samba.org> (Powerpc port) * Jakub Jelinek <jakub@redhat.com> (SPARC port) * Jakub Bogusz <qboosh@pld-linux.org> (alpha port) +* SuSE (amd64 port) 1. Introduction --------------- @@ -55,7 +56,7 @@ Using software breakpoints, just like gdb. --------------------- At the time of writting, it works only with ELF32 executables. It only works in Linux, and it only works on some architectures (i386, m68k, -S/390, ARM, PowerPC, SPARC and alpha processors). +S/390, ARM, PowerPC, amd64, SPARC and alpha processors). It is part of at least Debian GNU/Linux, RedHat, SuSE and Mandrake. diff --git a/debian/changelog b/debian/changelog index 93b9f60..59d6038 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +ltrace (0.3.34) unstable; urgency=low + + * Fixed prototype declaration problem in arm, m68k, powerpc, s390 + * Added "amd64" to list of architectures (closes: Bug#252756) + * Sparc port is hopefully working (closes: Bug#35524) + + -- Juan Cespedes <cespedes@debian.org> Wed, 07 Jul 2004 10:40:56 +0200 + ltrace (0.3.33) unstable; urgency=low * Fixed two bugs, thanks to Mauro Meneghin <G1ld0@lycos.it>: diff --git a/debian/control b/debian/control index 502e11f..d814620 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Standards-Version: 3.5.6 Build-Depends: binutils-dev Package: ltrace -Architecture: i386 arm m68k s390 powerpc sparc alpha +Architecture: i386 arm m68k s390 powerpc sparc alpha amd64 Depends: ${shlibs:Depends} Description: Tracks runtime library calls in dynamically linked programs ltrace is a debugging program which runs a specified command until it diff --git a/sysdeps/linux-gnu/arm/regs.c b/sysdeps/linux-gnu/arm/regs.c index e922837..70ead10 100644 --- a/sysdeps/linux-gnu/arm/regs.c +++ b/sysdeps/linux-gnu/arm/regs.c @@ -26,7 +26,7 @@ get_instruction_pointer(struct process * proc) { } void -set_instruction_pointer(struct process * proc, long addr) { +set_instruction_pointer(struct process * proc, void * addr) { ptrace(PTRACE_POKEUSER, proc->pid, off_pc, addr); } diff --git a/sysdeps/linux-gnu/m68k/regs.c b/sysdeps/linux-gnu/m68k/regs.c index 183862b..5c6c014 100644 --- a/sysdeps/linux-gnu/m68k/regs.c +++ b/sysdeps/linux-gnu/m68k/regs.c @@ -22,7 +22,7 @@ get_instruction_pointer(struct process * proc) { } void -set_instruction_pointer(struct process * proc, long addr) { +set_instruction_pointer(struct process * proc, void * addr) { ptrace(PTRACE_POKEUSER, proc->pid, 4*PT_PC, addr); } diff --git a/sysdeps/linux-gnu/ppc/regs.c b/sysdeps/linux-gnu/ppc/regs.c index 2eda17a..9916750 100644 --- a/sysdeps/linux-gnu/ppc/regs.c +++ b/sysdeps/linux-gnu/ppc/regs.c @@ -22,7 +22,7 @@ get_instruction_pointer(struct process * proc) { } void -set_instruction_pointer(struct process * proc, long addr) { +set_instruction_pointer(struct process * proc, void * addr) { ptrace(PTRACE_POKEUSER, proc->pid, 4*PT_NIP, addr); } diff --git a/sysdeps/linux-gnu/s390/regs.c b/sysdeps/linux-gnu/s390/regs.c index 2a412cf..3dbf871 100644 --- a/sysdeps/linux-gnu/s390/regs.c +++ b/sysdeps/linux-gnu/s390/regs.c @@ -27,7 +27,7 @@ get_instruction_pointer(struct process * proc) { } void -set_instruction_pointer(struct process * proc, long addr) { +set_instruction_pointer(struct process * proc, void * addr) { ptrace(PTRACE_POKEUSER, proc->pid, PT_PSWADDR, addr); } diff --git a/sysdeps/linux-gnu/sparc/regs.c b/sysdeps/linux-gnu/sparc/regs.c index 9928b73..78efec3 100644 --- a/sysdeps/linux-gnu/sparc/regs.c +++ b/sysdeps/linux-gnu/sparc/regs.c @@ -6,31 +6,31 @@ #include "ptrace.h" #include "ltrace.h" -void * get_instruction_pointer(struct process * proc) -{ +void * +get_instruction_pointer(struct process * proc) { proc_archdep *a = (proc_archdep *)(proc->arch_ptr); if (a->valid) return (void *)a->regs.r_pc; return (void *)-1; } -void set_instruction_pointer(struct process * proc, void * addr) -{ +void +set_instruction_pointer(struct process * proc, void * addr) { proc_archdep *a = (proc_archdep *)(proc->arch_ptr); if (a->valid) a->regs.r_pc = (long)addr; } -void * get_stack_pointer(struct process * proc) -{ +void * +get_stack_pointer(struct process * proc) { proc_archdep *a = (proc_archdep *)(proc->arch_ptr); if (a->valid) return (void *)a->regs.r_o6; return (void *)-1; } -void * get_return_addr(struct process * proc, void * stack_pointer) -{ +void * +get_return_addr(struct process * proc, void * stack_pointer) { proc_archdep *a = (proc_archdep *)(proc->arch_ptr); unsigned int t; if (!a->valid) diff --git a/sysdeps/linux-gnu/x86_64/regs.c b/sysdeps/linux-gnu/x86_64/regs.c index 3ccf1cd..176a894 100644 --- a/sysdeps/linux-gnu/x86_64/regs.c +++ b/sysdeps/linux-gnu/x86_64/regs.c @@ -17,21 +17,21 @@ #endif void * -get_instruction_pointer(struct process *proc) { +get_instruction_pointer(struct process * proc) { return (void *)ptrace(PTRACE_PEEKUSER, proc->pid, 8*RIP, 0); } void -set_instruction_pointer(struct process *proc, void *addr) { +set_instruction_pointer(struct process * proc, void * addr) { ptrace(PTRACE_POKEUSER, proc->pid, 8*RIP, addr); } void * -get_stack_pointer(struct process *proc) { +get_stack_pointer(struct process * proc) { return (void *)ptrace(PTRACE_PEEKUSER, proc->pid, 8*RSP, 0); } void * -get_return_addr(struct process *proc, void * stack_pointer) { +get_return_addr(struct process * proc, void * stack_pointer) { return (void *)ptrace(PTRACE_PEEKTEXT, proc->pid, stack_pointer, 0); } |