2009-11-15 51 views
0

我有一个ncurses应用程序执行以下操作,有时会在启动后立即执行,有时在执行一些操作之后执行。任何可能导致ncurses中出现双免费的原因?

malloc: *** error for object 0x100300400: double free 
Program received signal SIGABRT, Aborted 
(gdb) where 
#0 0x00007fff846a7426 in read() 
#1 0x00007fff83f3d775 in _nc_wgetch() 
#2 0x00007fff83f3de3f in wgetch() 
(and so on into my code) 

有没有人有可能的事情的建议追求?

+0

如何发布一些代码? – Gonzalo 2009-11-16 00:34:47

+0

代码只是一个wgetch(stdscr)调用。寻找更多wgetch可能中止的原因。 – 2009-11-16 01:15:45

回答

2

看起来您正在使用glibc,可能在x86_64 Linux系统上。

在Linux/x86_64上用于任何类型堆损坏的工具是Valgrind。它会立即给你答案,所以没有必要猜测问题出在哪里(它可能是任何地方)。

+0

glibc,达尔文,10.6所以valgrind是不可能的。再说一遍,我也有Ubuntu,把valgrind放回桌子上。谢谢。 – 2009-11-16 01:14:29

相关问题