如何检查预编译的 libtcmalloc.so 是否在没有 libunwind 的情况下编译?

How to check if a pre-compiled libtcmalloc.so is compiled without libunwind?

我什至不知道从哪里开始,对这个菜鸟问题表示歉意,但似乎在 SO 中没有关于这个特定案例的任何内容,除非有更多我不知道的通用术语。

最近(大约 5 年左右),gperftools 支持转储使用回溯方法的环境变量。将 TCMALLOC_STACKTRACE_METHOD_VERBOSE 设置为 1,它将默认显示它使用的内容。您还可以通过 TCMALLOC_STACKTRACE_METHOD 环境变量覆盖使用的方法。

另一种选择是通过包管理器。在我的 debian 系统上,我看到 libtcmalloc-minimal4 在没有 libunwind 的情况下链接(正如预期的那样,因为它不捕获任何回溯),而 libgoogle-perftool4 确实依赖于 libunwind8。在 debian 和 ubuntu 上,您可以通过 运行 apt-cache show 看到。