massif 不显示库中函数的任何函数名称,并且该库由 dlclose() 关闭。
如果我删除 dlclose(),然后运行重新编译和执行程序,我可以看到这些符号。有没有办法在不更改源代码的情况下知道函数名称?
massif 不显示库中函数的任何函数名称,并且该库由 dlclose() 关闭。
如果我删除 dlclose(),然后运行重新编译和执行程序,我可以看到这些符号。有没有办法在不更改源代码的情况下知道函数名称?
新版本的 valgrind (3.14) 有一个选项,指示 valgrind 保留 dlclose'd 库的符号:
--keep-debuginfo=no|yes Keep symbols etc for unloaded code [no]
This allows saved stack traces (e.g. memory leaks)
to include file/line info for code that has been
dlclose'd (or similar)
但是,massif 没有使用此信息。
您可以通过执行以下操作获得可用的堆报告配置文件:
valgrind --keep-debuginfo=yes --:xtree-leak=yes
然后使用例如 kcachegrind 可视化堆内存。