我打算将 ltrace 用于某些应用程序,例如 chrome,但是当我使用它时,我收到以下错误消息。
“/usr/bin/google-chrome”不是 ELF 文件
有人知道解决办法吗?我想知道运行应用程序到底调用了哪些函数。
谢谢,
有人知道解决办法吗?
file -L /usr/bin/google-chrome
/usr/bin/google-chrome: Bourne-Again shell script, ASCII text executable
这告诉您
google-chrome
是一个 shell 脚本。如果你往里面看,你会发现它最终调用了一个真正的 ELF 二进制文件(在我的系统上/opt/google/chrome/chrome
)。
我想知道运行应用程序到底调用了哪些函数。
ltrace
命令不会向您显示这一点。它只会显示正在调用哪些external函数。
修复:显式调用 bash 解释器
ltrace -f -C bash -e $(which google-chrome) https://httpbin.dev/get
bash -e
表示:出错时停止 bash 脚本
IMO,这是 ltrace
中缺少的功能strace 可与 bash 脚本配合使用
strace -ff google-chrome https://httpbin.dev/get