gdb backtrace显示了malloc

时间:2013-05-13 19:03:40

标签: c linux gdb

我正在调试进程崩溃,&回溯看起来有点像下面。 这个过程在代码中的不同点崩溃,但是所有的时间回溯都归结为malloc。

我尝试将堆从128 M增加到256 M,但这也无济于事。 核心转储的大小约为164米,&而运行进程使用大约相同的virt内存。

请你们指点我正确的方向。 感谢帮助。

#0
#1
#2
#5  0xb7fc7966 in malloc (size=141858520)
.
.
.
#16 0x0805ef69 in main (argc=1, argv=0xbffffa64)
.

bt 2:这是我得到的第二次回溯。相同的过程但在代码中的不同点崩溃。

#0
#1
#2
#5  0xb7fc7677 in realloc (p=0xe01fd8, size=139629112)
.
.
.
#18 0x0805ef69 in main (argc=1, argv=0xbffffa64)

1 个答案:

答案 0 :(得分:1)

malloc内的任何崩溃几乎都是保证堆损坏的迹象。

在Linux上,用于查找此类堆损坏的 工具是ValgrindAddress Sanitizer

请参阅this page以了解两者之间的差异。