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