我正在尝试使用 Google Performance Tools ,特别是 64 位 Ubuntu 14.04 存储库中的官方版本,用于调试应用程序及其关联的 .so
库。
以最小的更改运行,只需确保 -g
已设置,就可以找到踪迹,但只有来自主要可执行文件的几个符号。按照 the rather minimal documentation 中的建议将 ProfilerRegisterThread()
添加到库中的线程实际上让事情变得更糟,输出的符号更少,只有十六进制地址。
如何正确分析库中的线程?
最佳答案
pprof 使用 addr2line 进行地址到符号的解析。如果启用了 ASLR,addr2line 将不起作用。尝试禁用 ASLR。
另一种可能性是为 pprof 实现 HTTP 服务器接口(interface),并使用类似 libbacktrace 的东西来实现地址到符号的解析。
关于c++ - 无法分析库中的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147049/