memory - 在 "killed 9"进程上使用 massif

标签 memory valgrind massif

我正在尝试为一个消耗过多内存并被 OS (FreeBSD) 以 9 信号杀死的程序进行内存分析。这种情况发生在某些特定数据上,因此在另一个(例如较小的)数据集上对其进行分析不会有太大帮助。当程序被终止时,9 massif 根本不会生成任何输出。在这种情况下可以做什么来分析内存?

最佳答案

如果您有最新的 Valgrind 版本 (>= 3.7.0), Valgrind 有一个嵌入式 gdbserver,因此它可以与 gdb 一起使用。

在您的应用程序开始在 Valgrind 下运行之前,您可以放置​​断点。 遇到断点时,可以使用GDB监控命令 调用 Valgrind 工具特定的功能。 例如,使用 Massif,您可以触发报告的生成。 使用 Memcheck,您可以进行泄漏搜索、检查有效性位,...

也可以从 shell 命令触发这些监控命令 行(使用 Valgrind vgdb 实用程序)

关于memory - 在 "killed 9"进程上使用 massif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13512252/

相关文章:

json - 解析大于内存的 JSON 字符串

iphone - 将对象保存在内存中(iPhone SDK)

c - 了解 "Invalid read of size n"

c - Valgrind 向 malloc 报告愚蠢的 arg,我如何找出位置?

c++ - 由于内存不足导致linux应用程序崩溃

linux - 比较 valgrind、massif、top 和 pmap

linux - massif 报告的堆使用量比 VmRss 少得多,这可能是什么问题?

C++/SDL 内存管理

c - 在c中打破二维指针数组的一行,我做错了什么?

c++ - 奇怪的段错误和valgrind分析