On Thu, 2008-06-05 at 09:49 +0800, Luming Yu wrote:Hm, I think without utrace, it gets out-of-sync once, so syscall entries and exits are swapped from that point on. With utrace, it gets out-of-sync _twice_, so it eventually looks fine. But the strace output definitely looks incorrect even with utrace: 5718 execve("./test2.sh", [], [/* 23 vars */]) = 1 5718 execve("", [0x840c001000100003, 0x26230c14203032, 0x8cb0008800140a81, 0xa643100801808402, 0x2400905000040088, 0x11600a0072000001, 0xad814a00402e0, 0x2200012464009344, 0x1180418512c40026, 0x400003081880008, 0x2100010840910404, 0x8045120000800003, 0x6400000c0000600, 0xc20063440501400, 0x1048015002008081, 0xe02226005008c010, ...], [/* 0 vars */]) = 1 5718 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) Note that strace missed a brk() syscall, although I can actually see this in the other trace you sent me: wait4(-1, [{WIFSTOPPED(s) && WSTOPSIG(s) == SIGTRAP}], __WALL, NULL) = 5704 ptrace(PTRACE_PEEKUSER, 5704, psr, NULL) = 4398046511120 ptrace(PTRACE_PEEKUSER, 5704, r15, NULL) = 1060 ptrace(PTRACE_SYSCALL, 5704, 0x1, SIG_0) = 0 Look at the value of r15, and compare it with unistd.h: #define __NR_brk 1060 I _guess_ this is caused by the fact that test2.sh is a shell script, so the kernel executes the shell, and maybe utrace produces a second execve notifications in this case? Roland, can you shed some light? Petr Tesarik --
| Faik Uygur | Re: Linux 2.6.21-rc1 |
| pageexec | Re: [stable] Linux 2.6.25.10 |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
git: | |
| Mark Lord | Re: 2.6.25-rc8: FTP transfer errors |
| Natalie Protasevich | [BUG] New Kernel Bugs |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
