0

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

如果我删除 dlclose(),然后运行重新编译和执行程序,我可以看到这些符号。有没有办法在不更改源代码的情况下知道函数名称?

4

1 回答 1

0

新版本的 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 可视化堆内存。

于 2018-10-15T19:31:06.110 回答