我正在尝试为一个程序做一个内存分析,这个程序消耗了太多的内存,并被OS (FreeBSD)用9信号杀死。这发生在一些特定的数据上,所以在另一个(例如更小的)数据集上分析它不会有太大帮助。当程序被终止时,9massif根本不会生成任何输出。在这种情况下,可以做些什么来分析内存?
发布于 2012-12-15 16:14:25
如果您有一个最新的Valgrind版本(>= 3.7.0),那么Valgrind有一个嵌入的gdb服务器,因此它可以与gdb一起使用。
在您的应用程序开始在Valgrind下运行之前,您可以放置断点。当遇到断点时,GDB monitor命令可用于调用Valgrind工具特定的功能。例如,使用Massif,您可以触发报告的生成。使用Memcheck,您可以进行泄漏搜索,检查有效位,...
也可以从shell命令行触发这些监视器命令(使用Valgrind vgdb实用程序)
https://stackoverflow.com/questions/13512252
复制相似问题