我正在尝试对一个消耗太多内存的程序进行内存分析,并被9(9)信号的OS(FreeBSD)杀死。这发生在某些特定数据上,因此在另一个(例如较小的)数据集上进行分析不会给予太多帮助。当程序被杀死时,9个断块根本不会产生任何输出。在这种情况下可以做些什么来获取内存配置文件?
答案 0 :(得分:1)
如果您有最近的Valgrind版本(> = 3.7.0), Valgrind有一个嵌入式gdbserver,因此它可以与gdb一起使用。
在您的应用程序开始在Valgrind下运行之前,您可以放置断点。 遇到断点时,可以使用GDB监视器命令 调用Valgrind工具特定功能。 例如,使用Massif,您可以触发报告的生成。 使用Memcheck,您可以进行泄漏搜索,检查有效位,......
也可以从shell命令触发这些监视命令 line(使用Valgrind vgdb实用程序)