交叉编译 strace

交叉编译 strace

1 概述

strus

strace 是 Linux 环境下的一款程序调试工具,用于监控一个应用程序所使用的系统调用以及它所接收到的系统信息。1

系统管理员、诊断人员和故障排除人员会发现,它对于解决源代码不易获得的程序问题非常宝贵,因为它们不需要重新编译程序来跟踪它们。

strace 的操作是由称为 ptrace 的内核特性实现的。2

官方网址:https://strace.io

2 源码下载

2.1 官网下载

strace 的官方仓库是 GithubGitlab。你可以从以上两个仓库克隆源码下来,或者按照官方指引从 Fedora rawhide, OBS, Sisyphus 获取最新的二进制软件包。

官方最新的源码 tar 包可以从 https://strace.io/files/ 网址获取。以 6.10 版本为例,可以从这里获取得到。

download

使用 wget 从命令行下载:

wget https://strace.io/files/6.10/strace-6.10.tar.xz

以量产发布为目的的建议采用以上方式下载特定的软件版本。

如果是希望参与到 strace 的开发或者维护,使用 git clone 下载可以查看版本的所有修改记录。

git clone https://github.com/strace/strace.git

2.2 使用 apt source 下载

如果你使用的是 Ubuntu/Debian 系统,可以使用 apt source 指令进行源码下载。

apt source strace

此处下载的是与 Ubuntu/Debian 系统版本相符的 strace 源码,并非最新源码。

3 交叉编译

3.1 编译步骤

解压缩源码包,如果使用 git clone 下载回来的源码可以忽略这一步。

tar -xvf strace-6.10.tar.xz

解压缩源码包之后建议先阅读 README 与 INSTALL 文档,里面有关于编译的相关信息。

strace 支持的是 GNU Build System 编译系统,简单理解就是 Unix 经典编译三部曲: ./configure, make, make install

在进行交叉编译前,首先创建一个环境配置文件 a