在gdb for linux中启用memleak选项

时间:2013-02-08 14:59:15

标签: c++ linux memory-leaks gdb

我正在尝试查看哪个进程导致内存泄漏,并转储堆,导致它看到问题所在。

我在gdb中使用哪个命令来设置内存泄漏并检查堆?

我试过了:

(gdb) check -leaks

checkpoint: can't find fork function in inferior.

(gdb) help info heap

Undefined info command: "heap".  Try "help info".

(gdb) help info leaks 

Undefined info command: "leaks".  Try "help info".

2 个答案:

答案 0 :(得分:11)

人们已经指出,Valgrind是你的答案。通常,Valgrind只会在程序执行结束时报告错误。您可以将Valgrind与GDB(vgdb)链接,以便在程序执行期间转储Valgrind统计数据,同时它在GDB下运行。

请参阅类似问题:

Dumping contents of lost memory reported by Valgrind

答案 1 :(得分:2)

info leaksinfo heap是仅在HP-UX上的gdb中可用的命令(HP-UX gdb是开源GNU调试器gdb的自定义版本,并在The HP Wildebeest Debugger (WDB)上调用 - http://www.hp.com/go/wdb)。在Linux上,您需要使用valgrind