程序调用追踪

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

相关推荐
lzx_0028 小时前
Linux 进程(二) 深入理解进程
linux
沫璃染墨8 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
温暖小土8 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
GeW10 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
女神下凡13 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
12.=0.14 小时前
【持续更新】shell脚本 + Linux命令
linux·运维·服务器
Escalating_xu14 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
无言听风雨丶15 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
万联WANFLOW15 小时前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
OPEN-F15 小时前
Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复
linux·运维·ubuntu