https://sourceforge.net/projects/strace/?source=typ_redirect
1.下载strace-xxx.tar.xz
下载网址是:http://sourceforge.net/project/showfiles.php?group_id=2861&package_id=2819;
2.解压
$ xz -d ***.tar.xz
$ tar -xvf ***.tar
可以看到这个压缩包也是打包后再压缩,外面是xz压缩方式,里层是tar打包方式。
补充:目前可以直接使用 tar xvJf ***.tar.xz来解压
3.配置
./configure ./configure --host=arm-linux CC=arm-none-linux-gnueabi-gcc
4.编译
make make CFLAGS+="-static"
5.安装
make install
6.使用
交叉编译
系统环境:Ubuntu 14.04.3 LTS
源码:strace-4.11.tar.xz
交叉编译环境:arm-none-linux-gnueabi-
[zhaojq@virtual-machine]# tar -xvf strace-4.11.tar.xz
[zhaojq@virtual-machine]# cd strace-4.11/
[zhaojq@virtual-machine]# ./configure --prefix=/home/zhaojq/strace --host=arm-none-linux CC=arm-none-linux-gnueabi-gcc LD=arm-none-linux-gnueabi-ld
[zhaojq@virtual-machine]# make
[zhaojq@virtual-machine]# make install
生成成功
交叉编译后的可执行文件在/home/zhaojq/strace目录的bin文件夹里
[zhaojq@virtual-machine strace/bin]# ls
strace strace-graph strace-log-merge
将所有文件都拷贝到ARM设备上文件系统的/bin目录里
通过strace打印出的信息,我们可以对什么时候产生了一个子线程,那个线程在等待,哪个线程被唤醒,哪个线程收到信号,哪个线程core掉有一个综合的了解,这些信息对多线程调试会起到很大的作用。
然后把里面的可执行文件strace拷贝出来,在用strip strace命令去除调试信息,strace文件由2M变为500k
arm-none-linux-gnueab-strip strace
见博文:http://blog.csdn.net/u011630575/article/details/52077563