【问题标题】:Error in : corrupted double-linked list 0xb2808cf8 C++错误:损坏的双链表 0xb2808cf8 C++
【发布时间】:2016-04-22 14:22:20
【问题描述】:

我的应用程序出现此错误。(在 Windriver Linux 上)

 *** Error in `./BasicTimersTest': corrupted double-linked list: 0xb2808cf8 ***

根据回溯,这是在使用 new 分配内存时看到的。

我的代码中没有双链表。我浏览了这个问题和大多数讨论类似问题的网站,但以 glibc detected 作为前缀。

两者有什么区别,错误跟踪中打印的地址(0xb2808cf8)有什么意义吗?

【问题讨论】:

  • 风河是嵌入式的东西。我不认为他们使用 glibc。这解释了不同的错误消息。
  • 在分配内存时检测到,但实际损坏更早发生。 “电子围栏”分配器在 Wind River 上是否正确运行?还是 valgrind?

标签: c++ malloc


【解决方案1】:

我看到了这条消息,其中 malloc 数据结构已损坏,很可能您在错误的指针上调用了 free,例如,它不指向分配区域的开头,或者已经被释放(双重释放),或者您以某种方式编写了通过在数组外部写入,进入内部 malloc 结构。它可能在您调用new 之前很久就发生了,但您只是在尝试分配新内存时才看到问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多