在没有源代码的情况下调试已编译的二进制文件

Debug compiled binary without source code

我遇到了某个已编译的二进制文件的问题,该文件必须 运行 作为部署 pod 中某个容器的健康检查。在 AWS 环境中,它 运行 符合预期,但在本地脚本失败并出现模糊错误(即使共享它也没有用)。我知道问题可能出在 kubernetes 环境中,没有按照脚本的预期进行配置,但我不知道究竟应该在哪里查看,因为我不知道脚本的作用,也无法访问其源代码。

我在网上阅读了有关 linux 的调试实用程序,但其中 none 似乎对此很有用,或者我不明白如何正确使用它们。是否可以找到脚本正在访问哪些文件?这将使我能够比较本地环境和 AWS 环境之间的那些文件。看看有什么不同,这样我就可以解决这个问题。

已解决,留着,以后有需要的朋友可以参考一下。 您可以使用 strace /path/to/bin 2>&1 | grep openat 列出程序访问的所有文件。对于没有源代码的调试非常有用。