valgrind massif dlclose() 没有符号

No symbols for valgrind massif dlclose()

massif 不显示库中函数的任何函数名称,并且此库已被 dlclose() 关闭。

如果我删除 dlclose() 和 运行 重新编译和执行程序,我可以看到符号。有没有办法不用改源码就知道函数名?

新版本的 valgrind (3.14) 有一个选项指示 valgrind 保留 dlclose 库的符号:

--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.