+ -
当前位置:首页 → 问答吧 → 一个调用free()导致coredump的问题

一个调用free()导致coredump的问题

时间:2010-09-16

来源:互联网

dbx结果如下:

(dbx) where
free_y(??, ??) at 0x900000000051d14
free_common(??) at 0x90000000004fca4
socket_qrytotalfee(contract_num = "25266", billing_month = "201009", plAmount = 0x0ffffffffffc66e8, iHostType = 1), line 371 in "yx.c"


line 371 in "yx.c"内容:
free(messqryre);

这个函数在生产上是正常执行的,今天忽然发现有core文件。请问有人调用free出现core的问题么?

作者: sblood   发布时间: 2010-09-16

看你free什么了

作者: pengjianbokobe   发布时间: 2010-09-16

回复 pengjianbokobe


    生产程序中很多涉及free()的函数都会引起core,

作者: sblood   发布时间: 2010-09-16

作者: pengjianbokobe   发布时间: 2010-09-16

是不是多次free了?或者free的东西是NULL的?

作者: ilwmin   发布时间: 2010-09-16

原因基本上,1、释放了不该释放的东东(比如不是malloc/calloc出来的,多次free等)。2、程序的正常内存已经被破坏了(往不该写数据的内存写了数据)。

作者: pagx   发布时间: 2010-09-16