2.4.0-test9-preX ptrace changes kill also ltrace

From: Petr Vandrovec (vandrove@vc.cvut.cz)
Date: Fri Sep 22 2000 - 06:10:57 EST


Hi Linus,
  in addition to UML, also ltrace is affected by EIP changes in
ptrace :-(

ptrace(POKE_USER, ..., 4*EIP, ...);
ptrace(PTRACE_SINGLESTEP, ...);

and child died :-( Maybe we should really backout change...
                                Best regards,
                                        Petr Vandrovec
                                        vandrove@vc.cvut.cz

execve("/usr/bin/ltrace", ["ltrace", "./vsbtuo"], [/* 18 vars */]) = 0
brk(0) = 0x8056a3c
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=28810, ...}) = 0
old_mmap(NULL, 28810, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3) = 0
open("/lib/libdl.so.2", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=9372, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\310\34"..., 4096) = 4096
old_mmap(NULL, 12396, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001c000
mprotect(0x4001e000, 4204, PROT_NONE) = 0
old_mmap(0x4001e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x4001e000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=888596, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\244\213"..., 4096) = 4096
old_mmap(NULL, 902972, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40020000
mprotect(0x400f5000, 30524, PROT_NONE) = 0
old_mmap(0x400f5000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd4000) = 0x400f5000
old_mmap(0x400f9000, 14140, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400f9000
close(3) = 0
munmap(0x40014000, 28810) = 0
personality(PER_LINUX) = 0
getpid() = 13505
...
--- SIGCHLD (Child exited) ---
wait4(-1, [WIFSTOPPED(s) && WSTOPSIG(s) == SIGTRAP], 0, NULL) = 13506
ptrace(PTRACE_PEEKUSER, 13506, 4*ORIG_EAX, [0x14]) = 0
ptrace(PTRACE_SYSCALL, 13506, 0x1, SIG_0) = 0
--- SIGCHLD (Child exited) ---
wait4(-1, [WIFSTOPPED(s) && WSTOPSIG(s) == SIGTRAP], 0, NULL) = 13506
ptrace(PTRACE_PEEKUSER, 13506, 4*ORIG_EAX, [0xffffffff]) = 0
ptrace(PTRACE_PEEKUSER, 13506, 4*EIP, [0x8048969]) = 0
ptrace(PTRACE_PEEKUSER, 13506, 4*UESP, [0xbffffd6c]) = 0
ptrace(PTRACE_PEEKTEXT, 13506, 0xbffffd6c, [0x8048aa1]) = 0
write(2, "__libc_start_main(", 18__libc_start_main() = 18
ptrace(PTRACE_PEEKTEXT, 13506, 0xbffffd70, [0x8048df8]) = 0
write(2, "0x08048df8", 100x08048df8) = 10
write(2, ", ", 2, ) = 2
ptrace(PTRACE_PEEKTEXT, 13506, 0xbffffd74, [0x1]) = 0
write(2, "1", 11) = 1
write(2, ", ", 2, ) = 2
ptrace(PTRACE_PEEKTEXT, 13506, 0xbffffd78, [0xbffffd94]) = 0
write(2, "0xbffffd94", 100xbffffd94) = 10
write(2, ", ", 2, ) = 2
ptrace(PTRACE_PEEKTEXT, 13506, 0xbffffd7c, [0x8048854]) = 0
write(2, "0x08048854", 100x08048854) = 10
write(2, ", ", 2, ) = 2
ptrace(PTRACE_PEEKTEXT, 13506, 0xbffffd80, [0x804933c]) = 0
write(2, "0x0804933c", 100x0804933c) = 10
ptrace(PTRACE_PEEKTEXT, 13506, 0x8048aa1, [0x909090f4]) = 0
ptrace(PTRACE_POKETEXT, 13506, 0x8048aa1, 0x909090cc) = 0
ptrace(PTRACE_PEEKTEXT, 13506, 0x8048968, [0xa64825cc]) = 0
ptrace(PTRACE_POKETEXT, 13506, 0x8048968, 0xa64825ff) = 0
ptrace(PTRACE_POKEUSER, 13506, 4*EIP, 0x8048968) = 0
ptrace(PTRACE_SINGLESTEP, 13506, 0, SIG_0) = 0
--- SIGCHLD (Child exited) ---
wait4(-1, [WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV], 0, NULL) = 13506
write(2, " <unfinished ...>\n", 18 <unfinished ...>
) = 18
write(2, "+++ killed by SIGSEGV +++", 25+++ killed by SIGSEGV +++) = 25
write(2, "\n", 1
) = 1
_exit(0) = ?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 21:00:26 EST