Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Sep 2011 21:04:08 -0700
From:      Garrett Cooper <yanegomi@gmail.com>
To:        "d@delphij.net" <d@delphij.net>
Cc:        "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>, Anton Yuzhaninov <citrin@citrin.ru>
Subject:   Re: truss
Message-ID:  <FBFCA8F4-7322-4233-B045-D0801503E4A3@gmail.com>
In-Reply-To: <4E6A99A9.1000204@delphij.net>
References:  <4E5E46A4.3060705@citrin.ru> <4E6A99A9.1000204@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sep 9, 2011, at 3:56 PM, Xin LI <delphij@delphij.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>=20
> On 08/31/11 07:35, Anton Yuzhaninov wrote:
>> It seems to be truss(1) is broken on current
>>=20
>> :~> truss /bin/echo x x truss: can not get etype: No such process
>>=20
>> FreeBSD 9.0-BETA1 #0 r224884M i386
>>=20
>> from ktrace of turss
>>=20
>> 3162 truss    CALL
>> __sysctl(0xbfbfea00,0x4,0xbfbfe9e0,0xbfbfea10,0,0) 3162 truss
>> SCTL  "kern.proc.sv_name.3163" 3162 truss    RET   __sysctl -1
>> errno 3 No such process
>=20
> Can't seem to be reproducable here, did I missed anything?  (note that
> you may need a full world/kernel build).
>=20
>> truss /bin/echo x
> mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =3D
> 34366255104 (0x800637000)
> issetugid(0x800638015,0x80062cd9e,0x800848810,0x8008487e0,0xb277,0x0)
> =3D 0 (0x0)
> open("/etc/libmap.conf",O_RDONLY,0666)         =3D 3 (0x3)
> fstat(3,{ mode=3D-rw-r--r-- ,inode=3D1668471,size=3D712,blksize=3D4096 }) =3D=
 0
> (0x0)
> read(3,"libpthread.so.2\tlibthr.so.2\nli"...,4096) =3D 712 (0x2c8)
> read(3,0x80063b000,4096)             =3D 0 (0x0)
> close(3)                     =3D 0 (0x0)
> open("/var/run/ld-elf.so.hints",O_RDONLY,0160)     =3D 3 (0x3)
> read(3,"Ehnt\^A\0\0\0\M^@\0\0\0\M-\\^A\0"...,128) =3D 128 (0x80)
> lseek(3,0x80,SEEK_SET)                 =3D 128 (0x80)
> read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,476) =3D 476 (0x1dc)
> close(3)                     =3D 0 (0x0)
> mmap(0x0,36864,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =3D
> 34366287872 (0x80063f000)
> access("/lib/libc.so.7",0)             =3D 0 (0x0)
> open("/lib/libc.so.7",O_RDONLY,040737600)     =3D 3 (0x3)
> fstat(3,{ mode=3D-r--r--r-- ,inode=3D2664100,size=3D1310888,blksize=3D1310=
72
> }) =3D 0 (0x0)
> pread(0x3,0x80083af60,0x1000,0x0,0x101010101010101,0x8080808080808080)
> =3D 4096 (0x1000)
> mmap(0x0,3432448,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) =3D
> 34368425984 (0x800849000)
> mmap(0x800849000,1179648,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOC=
ORE,3,0x0)
> =3D 34368425984 (0x800849000)
> mmap(0x800b69000,45056,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,3,0x1200=
00)
> =3D 34371702784 (0x800b69000)
> mprotect(0x800b74000,110592,PROT_READ|PROT_WRITE) =3D 0 (0x0)
> close(3)                     =3D 0 (0x0)
> sysarch(0x81,0x7fffffffcfc0,0x80063d6c8,0x0,0xffffffffffad0580,0x800865370=
)
> =3D 0 (0x0)
> munmap(0x800642000,24576)             =3D 0 (0x0)
> mmap(0x0,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =3D
> 34366300160 (0x800642000)
> sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTER=
M|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFS=
Z|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
> =3D 0 (0x0)
> sigprocmask(SIG_SETMASK,0x0,0x0)         =3D 0 (0x0)
> sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTER=
M|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFS=
Z|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
> =3D 0 (0x0)
> sigprocmask(SIG_SETMASK,0x0,0x0)         =3D 0 (0x0)
> readlink("/etc/malloc.conf","aj",1024)         =3D 2 (0x2)
> issetugid(0x800945ba1,0x7fffffffd220,0x6a,0x0,0x2,0x2) =3D 0 (0x0)
> break(0x800000)                     =3D 0 (0x0)
> mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =3D
> 34371858432 (0x800b8f000)
> mmap(0x800f8f000,462848,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0)
> =3D 34376052736 (0x800f8f000)
> munmap(0x800b8f000,462848)             =3D 0 (0x0)
> x
> writev(0x1,0x800c07040,0x2,0x7fffffffdad0,0x600d10,0x7fffffffcd60) =3D 2
> (0x2)
> sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTER=
M|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFS=
Z|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
> =3D 0 (0x0)
> sigprocmask(SIG_SETMASK,0x0,0x0)         =3D 0 (0x0)
> sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTER=
M|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFS=
Z|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
> =3D 0 (0x0)
> sigprocmask(SIG_SETMASK,0x0,0x0)         =3D 0 (0x0)
> process exit, rval =3D 0

Truss isn't broken for me this way either. It just doesn't detach from proce=
sses properly if I do ctrl c, which seems like a ptrace bug to me.

It would help to know how truss was compiled (file would be helpful), and wh=
at environment it's being executed in (32bit on 64bit, a chroot/jail, etc).
Thanks,
-Garrett=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FBFCA8F4-7322-4233-B045-D0801503E4A3>