我正在寻找一种工具,可以跟踪 Linux/ARM 中共享库中函数的调用。基本上,我希望能够指定一个命令行,并让该工具生成调用的库函数和传递的参数的记录。我想可以使用某种形式的函数挂钩来实现此目的。
我知道ltrace
,它提供了我所需要的功能。但是,ltrace
对我来说不起作用,因为它:
- 在跟踪更复杂的程序时经常出现段错误。
- 非常慢。
我正在寻找更强大的替代方案。速度很好,但不是我主要关心的。首先,我希望有一种跟踪库调用的方法,可以分析任何(非回避)程序。
Sysdig 也无法在 ARM 中工作,并且 dtrace 的端口仅在 NetBSD 中仍处于测试版状态。
有人知道这样的工具处于可用状态吗?
答案1
你看过吗LTTng?它是一个内核空间/用户空间跟踪框架,适用于多种体系结构,包括 ARM。
您可以使用以下命令设置用户空间代码的跟踪LTTng-UST。但是您必须重新编译要跟踪的共享库,并添加 LTTng 跟踪点。
以下是官方 lttng 文档中有关设置用户空间跟踪的指南:跟踪您自己的用户应用程序
我不知道这对您的情况是否有帮助,但还有一个关于在嵌入式平台(包括 ARM)上编译/安装 lttng 的 Stack Overflow 线程:如何构建 LTTng 并将其部署到嵌入式 Linux 系统?