7

I am trying to see which process which is causing a memory leak, and dump the heap which is causing it to see what is the issue.

Which command do I use in gdb to set the memory leak on and check the heap?

I tried:

(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".
jsj
  • 9,019
  • 17
  • 58
  • 103
user862833
  • 299
  • 2
  • 5
  • 16

2 Answers2

12

Valgrind is your answer as people have pointed out. Normally, Valgrind will only report errors at the end of your program's execution. You can link Valgrind with GDB (vgdb) to dump Valgrind stats during a program's execution while it's running under GDB.

Refer to a similar question asked:

Dumping contents of lost memory reported by Valgrind

Community
  • 1
  • 1
Forhad Ahmed
  • 1,761
  • 13
  • 18
  • 1
    While I'm fond of valgrind, unfortunately it isn't available on all platforms. The OP asked about gdb, which is available on more platforms than valgrind (e.g., sparc solaris). – Brian Vandenberg Apr 10 '14 at 17:46
4

info leaks and info heap are commands that are available in gdb only on HP-UX (HP-UX gdb is a customized version of Open Source GNU debugger gdb and is called on The HP Wildebeest Debugger (WDB) - http://www.hp.com/go/wdb ). On Linux you need to use valgrind.