NS2运行出现malloc.c:3096: sYSMALLOc:...错误

本文分享了一次在NS2中修改源码.h文件后遇到的运行错误经历。作者最初未能通过直接make解决该问题,但在使用gdb进行调试未果后发现,问题可能源于未执行make clean步骤。最终验证,先执行make clean再进行make可以避免此类错误的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在NS2中更改源码的.h文件之后,直接make没有出现问题。但是当运行tcl脚本文件时却出现了如下错误:

malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) – __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) – 1)) & ~((2 * (sizeof(size_t))) – 1))) && ((old_top)->size & 0×1) && ((unsigned long)old_end & pagemask) == 0)’ failed.

网上查了下都说是malloc或者new使用错误导致的,自己用gdb找了半天没找到出错原因,后来想了一下是不是因为我没有先make clean再make导致的(哈哈!神来之笔),重新make clean 然后再make错误果真没有了!!!所以在更改了源码之后一定要记得先make clean 再make!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值