用于库调用的 strace

dra*_*ath 16 debugging libraries trace

我知道strace,它对于观察系统调用非常方便。是否有可以跟踪对外部库的调用的等效项?

例如,我正在尝试使用第三方二进制文件调试一些 SSLeay 不当行为,我无法访问其代码(并且开发人员没有响应)。我相信我已经确定了问题所在,但是如果不确切了解签名检查的数据是如何格式化以发送到 SSLeay 的,我就无法对此进行测试。

Nik*_*ley 13

ltrace -- 一个库调用跟踪器。

它仅适用于 Linux 和一小部分架构。不会跟踪对 dlopen()ed 库的调用。来自手册页和/etc/ltrace.conf

  • dlopen()ed 库是否有任何可用的解决方案? (5认同)

Gil*_*il' 8

有时ltrace有效。通常,这需要调试器,例如GDB。通过查看反汇编 ( objdump -d /path/to/executable)中的调用结构,您可以了解要放置跟踪点或断点的函数。