程序调用追踪

ar(Archiver)是 Linux 下创建静态库的标准工具。而 gcc-ar 是它的一个包装器(Wrapper) 。笔者想要知道gcc-ar调用ar的细节,比如参数信息。

1)使用strace

bash 复制代码
strace -s 1024 -f -e execve gcc-ar

2)创建一个"伪造"的 ar

可以在不中断流程的情况下,记录所有gcc-ar的动作,可以玩个"调包计"

第一步,编写一个脚本 my-ar.sh

bash 复制代码
#!/bin/bash
echo "gcc-ar called ar with: $@" >> /tmp/ar_commands.log
# 这个地方需要写程序的绝对路径,如果直接使用ar,有可能陷入死循环,因为这里ar就是这个脚本程序
/devtoolset-8-binutils-2.30-55/bin/ar "$@"

第二步,给执行权限,chmod +x my-ar.sh

第三步,诱骗 gcc-ar : 由于 gcc-ar 往往去 PATH 里找 ar,你可以临时修改环境变量:

bash 复制代码
export PATH=$(pwd):$PATH
ln -s my-ar.sh ar

第四步,查看结果,cat /tmp/ar_commands.log

相关推荐
susplus44 分钟前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull
Shadow(⊙o⊙)44 分钟前
Linux进阶知识1.0
linux·运维·服务器
>Andre<1 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件
用户0510122572961 小时前
Linux下有关QT显示环境变量设置
linux·嵌入式
闲云自留地1 小时前
告别命令恐惧症,openEuler 基础操作 + 文本 + 网络管理实战
linux·运维·云计算
剑指offer.2 小时前
ARM裸机开发-点亮LED灯
linux·服务器·嵌入式硬件
GeW2 小时前
工作忙.基础弱,也能快速拿RHCE?这套方法亲测有效
linux
Julien20043 小时前
自动挂载网络附加存储
linux·服务器·网络
codigger3 小时前
服务器又卡了?一篇讲透 Linux 性能排查(基础四件套 + perf/strace/火焰图)
linux·后端·性能优化
顶点多余3 小时前
9.18 面试题总结 --- 绿盟
linux·面试