ARM linux strace 安装

it2022-05-09  21

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

  

 

  

  

  

  

 

转载于:https://www.cnblogs.com/liushuhe1990/p/9993239.html

相关资源:Linux各发行版通过 微信 deb包直接安装

最新回复(0)