ARM linux strace 安装

strace工具是一个非常强大的工具,是调试程序的好工具。要移植到arm平台,就需要使用交叉编译工具编译生成静态链接的可执行文件。具体步骤如下:

1.下载 strace-4.25.tar,下面是网址

https://strace.io/files/4.25/

2.解压

xz -d  strace-4.25.tar.xz
tar -xvf strace-4.25.tar

3.创建临时安装目录

cd  strace-4.25
mkdir temp

4.配置

CC=arm-arago-linux-gnueabi-gcc LD=arm-arago-linux-gnueabi-ld RANLIB=arm-arago-linux-gnueabi-ranlib ./configure --prefix=/home/picohood/projects/tools/trace/strace-4.25/temp --host=arm-arago-linux --target=arm-arago-linux

5.编译

make

6.安装

make install

7.拷贝到板卡上运行

scp temp/bin/* root@192.168.1.10:/bin

8.跟踪一下ls命令

 strace ls

root@XJ-WTX-871:/bin# strace ls
execve("/bin/ls", ["ls"], 0xbeefce40 /* 12 vars */) = 0
brk(NULL)                               = 0x1368000
uname({sysname="Linux", nodename="XJ-WTX-871", ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fb2000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0775, st_size=64, ...}) = 0
mmap2(NULL, 64, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6fb1000
close(3)                                = 0
open("/lib/tls/v7l/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l/fast-mult/half", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/tls/v7l/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l/fast-mult", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/tls/v7l/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l/half", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/tls/v7l/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/v7l", 0xbeae2518)      = -1 ENOENT (No such file or directory)
open("/lib/tls/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/fast-mult/half", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/tls/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/fast-mult", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/tls/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/half", 0xbeae2518)     = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = -1 ENOENT (No such file or directory)
stat64("/lib/tls", 0xbeae2518)          = -1 ENOENT (No such file or directory)
open("/lib/v7l/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/v7l/fast-mult/half", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/v7l/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/v7l/fast-mult", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/v7l/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/v7l/half", 0xbeae2518)     = -1 ENOENT (No such file or directory)
open("/lib/v7l/libc.so.6", O_RDONLY)    = -1 ENOENT (No such file or directory)
stat64("/lib/v7l", 0xbeae2518)          = -1 ENOENT (No such file or directory)
open("/lib/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/fast-mult/half", 0xbeae2518) = -1 ENOENT (No such file or directory)
open("/lib/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/fast-mult", 0xbeae2518)    = -1 ENOENT (No such file or directory)
open("/lib/half/libc.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
stat64("/lib/half", 0xbeae2518)         = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0(W\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0775, st_size=1185216, ...}) = 0
mmap2(NULL, 1221884, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e64000
mprotect(0xb6f81000, 32768, PROT_NONE)  = 0
mmap2(0xb6f89000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11d000) = 0xb6f89000
mmap2(0xb6f8c000, 9468, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6f8c000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fb0000
set_tls(0xb6fb04c0)                     = 0
mprotect(0xb6f89000, 8192, PROT_READ)   = 0
mprotect(0xb6fb3000, 4096, PROT_READ)   = 0
munmap(0xb6fb1000, 64)                  = 0
getuid32()                              = 0
gettimeofday({tv_sec=-1265353887, tv_usec=497425}, NULL) = 0
ioctl(0, TIOCGWINSZ, {ws_row=0, ws_col=0, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(1, TCGETS, {B115200 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B115200 opost isig icanon echo ...}) = 0
brk(NULL)                               = 0x1368000
brk(0x1389000)                          = 0x1389000
stat64(".", {st_mode=S_IFDIR|0775, st_size=2048, ...}) = 0
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = 3
fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
getdents64(3, /* 77 entries */, 32768)  = 2224
lstat64("./gzip", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./egrep", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./tar", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./ping", {st_mode=S_IFREG|0775, st_size=31032, ...}) = 0
lstat64("./umount", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./dmesg", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./ps", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./cpio", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./usleep", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./chown", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./setarch", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./cp", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./watch", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./linux32", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./hostname", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./mount", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./clockdiff", {st_mode=S_IFREG|0775, st_size=9960, ...}) = 0
lstat64("./mktemp", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./busybox", {st_mode=S_IFREG|0775, st_size=658488, ...}) = 0
lstat64("./tracepath", {st_mode=S_IFREG|0775, st_size=7688, ...}) = 0
lstat64("./cat", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./ash", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./netstat", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./pwd", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./dumpkmap", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./tracepath6", {st_mode=S_IFREG|0775, st_size=9872, ...}) = 0
lstat64("./mknod", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./printenv", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./catv", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./linux64", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./getopt", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./zcat", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./vi", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./true", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./sed", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./sleep", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./fdflush", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./dd", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./mkdir", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./dnsdomainname", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./ls", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./stty", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./su", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./ln", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./pipe_progress", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./mountpoint", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./rm", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./grep", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./nice", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./echo", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./fgrep", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./mt", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./chgrp", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./kill", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./login", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./mv", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./run-parts", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./uname", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./ping6", {st_mode=S_IFREG|0775, st_size=35140, ...}) = 0
lstat64("./traceroute6", {st_mode=S_IFREG|0775, st_size=12476, ...}) = 0
lstat64("./false", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./pidof", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./touch", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./sync", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./gunzip", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./setserial", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./more", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./chmod", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./rmdir", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./date", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./df", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./sh", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
lstat64("./strace", {st_mode=S_IFREG|0700, st_size=2179982, ...}) = 0
lstat64("./strace-graph", {st_mode=S_IFREG|0700, st_size=9095, ...}) = 0
lstat64("./strace-log-merge", {st_mode=S_IFREG|0700, st_size=2644, ...}) = 0

  

 

  

  

  

  

 

posted on 2018-11-21 09:52  紫枫术河  阅读(1579)  评论(0)    收藏  举报

导航