2

我试图在 callgrind 的一些结果上运行 KCacheGrind。基本上,代码库是一个插件容器,它启动一个共享对象来运行一个特定的功能。在使用 Callgrind 分析此应用程序时,我可以看到功能级别的成本,但看不到源级别的成本。

在启动 SO 之前,我可以在源代码级别看到插件容器代码,但我看不到启动的 SO 中包含的任何代码。

我知道我正在使用调试符号进行编译,但由于某种原因,我无法看到动态加载的 SO 源代码。

谢谢,

4

1 回答 1

3

我也遇到了这个问题。修复它的方法是阻止宿主应用程序在退出之前卸载插件。在我的情况下,我试图为 Lua 分析 C 模块,而当 VM 正常退出时,Lua 正在卸载模块。为了解决这个问题,我让脚本调用 os.exit() 来强制关闭。

在插件容器中禁用插件卸载,或者创建一个允许您强制应用程序退出的插件(调用 _exit(0))。

于 2013-05-24T07:43:45.980 回答