1.strace简介
strace常用来跟踪进程执行时的系统调用和所接收的信号。 通过strace可以知道应用程序打开了哪些文件,以及读写了什么内容,包括消耗的时间以及返回值等。在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
-
下载源码
网址:https://sourceforge.net/projects/strace/https://strace.io/
源码在github上面:https://github.com/strace/strace/releases
测试版本:5.15
-
编译
打开READEME文件,大致浏览一遍 需要先 基本流程就是 ./configure && make && make_install,先后完成配置、编译和安装工作。
(1) 首先 进行配置 主要指定 主机和交叉编译工具链
./configure --prefix=/mnt/d/work/code/strace-5.15/tmp --enable-mpers=no LDFLAGS=’-static -pthread’ --host=aarch64-linux CC=/mnt/d/work/code/tx511_mpw/prebuilts/host/gcc/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc
解释:
–prefix:后面install的目录,也就是编译出来后的文件所存放的目录。绝对路径。
–enable-mpers=no:未解决Cannot enable m32 personality support这个错误
LDFLAGS:静态编译,动态编译不需要
–host:主机
CC:交叉编译工具链
(2) make
(3) make install
编译出来的文件在/mnt/d/work/code/strace-5.15/tmp目录。