在gdb中为linux启用memleak选项

Enable memleak option in gdb for linux

本文关键字:memleak 选项 启用 linux gdb 中为      更新时间:2023-10-16

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

我在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".
正如人们所指出的,Valgrind是你的答案。通常,Valgrind只会在程序执行结束时报告错误。您可以将Valgrind与GDB(vgdb)链接,以便在程序在GDB下运行时,在程序执行期间转储Valgrind统计数据。

参考一个类似的问题:

Valgrind 报告的内存丢失转储内容

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