strace一直使用很多年前的版本,会有一个问题是,新版本加添了ioctl命令不支持,那么就会显示一个纯数字,看起来就比较恼火。所以会考虑到要编译最新版本的strace来调试。
首先对比一下使用老版本strace和新版本strace好处:
老版本strace第二个ioctl出现了一个魔数0xc25c4111,完全不知道是什么意思
新版本strace第二个ioctl魔数换成了SNDRV_PCM_IOCTL_HW_PARAMS
,就比较清晰了:
编译,目前最新版本的是4.19,所以就编译4.19版本了
编译脚本
#!/bin/bash
# 安装必要的工具
sudo apt-get install autoconf git gcc-arm-linux-gnueabihf
sudo ln -s /usr/include/asm-generic /usr/include/asm
# 下载源码
cd /tmp/ &&
git clone https://github.com/strace/strace &&
cd strace &&
git reset --hard v4.19 &&
# 编译
./bootstrap &&
./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-gcc-ld &&
make CFLAGS+="-static" &&
file strace
echo "build done."
编译好的arm版静态链接下载:http://download.csdn.net/download/kangear/9971996