2

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

4

1 回答 1

1

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

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

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

于 2012-12-15T08:14:24.757 回答