我得到这个错误:“glibc detected” [英] I get this error: "glibc detected"

查看:224
本文介绍了我得到这个错误:“glibc detected”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚写了一段CPP代码,我在Ubuntu中使用G ++编译它。
当我运行我的代码一切都很好,代码运行良好,并给出输出,但不退出,并给出此错误:

I just wrote a piece of CPP code and I compiled it using G++ in ubuntu. When I run my code everything is fine, the code runs well and gives output but doesn't exit and it gives this error:


 *** glibc detected *** ./a.out: free(): invalid next size (fast): 0x09f931f0 ***
======= Backtrace: =========
/lib/libc.so.6(+0x6c501)[0x3de501]
/lib/libc.so.6(+0x6dd70)[0x3dfd70]
/lib/libc.so.6(cfree+0x6d)[0x3e2e5d]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x6e2441]
./a.out[0x8049ce6]
/lib/libc.so.6(+0x2f69e)[0x3a169e]
/lib/libc.so.6(+0x2f70f)[0x3a170f]
/lib/libc.so.6(__libc_start_main+0xef)[0x388cef]
./a.out[0x8048a61]
======= Memory map: ========
00219000-0021a000 r-xp 00000000 00:00 0          [vdso]
00354000-00370000 r-xp 00000000 08:01 8781845    /lib/ld-2.12.1.so
00370000-00371000 r--p 0001b000 08:01 8781845    /lib/ld-2.12.1.so
00371000-00372000 rw-p 0001c000 08:01 8781845    /lib/ld-2.12.1.so
00372000-004c9000 r-xp 00000000 08:01 8781869    /lib/libc-2.12.1.so
004c9000-004ca000 ---p 00157000 08:01 8781869    /lib/libc-2.12.1.so
004ca000-004cc000 r--p 00157000 08:01 8781869    /lib/libc-2.12.1.so
004cc000-004cd000 rw-p 00159000 08:01 8781869    /lib/libc-2.12.1.so
004cd000-004d0000 rw-p 00000000 00:00 0 
00638000-00717000 r-xp 00000000 08:01 3935829    /usr/lib/libstdc++.so.6.0.14
00717000-0071b000 r--p 000de000 08:01 3935829    /usr/lib/libstdc++.so.6.0.14
0071b000-0071c000 rw-p 000e2000 08:01 3935829    /usr/lib/libstdc++.so.6.0.14
0071c000-00723000 rw-p 00000000 00:00 0 
00909000-0092d000 r-xp 00000000 08:01 8781918    /lib/libm-2.12.1.so
0092d000-0092e000 r--p 00023000 08:01 8781918    /lib/libm-2.12.1.so
0092e000-0092f000 rw-p 00024000 08:01 8781918    /lib/libm-2.12.1.so
00fdb000-00ff5000 r-xp 00000000 08:01 8781903    /lib/libgcc_s.so.1
00ff5000-00ff6000 r--p 00019000 08:01 8781903    /lib/libgcc_s.so.1
00ff6000-00ff7000 rw-p 0001a000 08:01 8781903    /lib/libgcc_s.so.1
08048000-0804b000 r-xp 00000000 08:01 8652645    /home/akg/Desktop/contest/a.out
0804b000-0804c000 r--p 00002000 08:01 8652645    /home/akg/Desktop/contest/a.out
0804c000-0804d000 rw-p 00003000 08:01 8652645    /home/akg/Desktop/contest/a.out
09f93000-09fb4000 rw-p 00000000 00:00 0          [heap]
b7600000-b7621000 rw-p 00000000 00:00 0 
b7621000-b7700000 ---p 00000000 00:00 0 
b7765000-b7768000 rw-p 00000000 00:00 0 
b7775000-b7779000 rw-p 00000000 00:00 0 
bf9a7000-bf9c8000 rw-p 00000000 00:00 0          [stack]
Aborted

这个意思?我怎么能摆脱它?
我不使用malloc或free,我只是使用向量!

What does this mean? How can i get rid of it? I'm not using malloc or free , I'm just using vector!

推荐答案

不直接分配内存,它发生在向量代码,你很可能通过编写你不应该的内存损坏一部分内存。我可以想到的最可能的原因是:

Even if you're not allocating memory directly, it happens under the hood in vector code and you most likely corrupted some portion of memory by writing where you are not supposed to. The most likely reasons I can think of are:


  1. 写入超出范围的元素

  2. 使用指针/对不再有效的元素的引用 - 请注意,插入更多元素可能会使以前的引用无效

当然,我不能肯定地说,除非你发布一些相关的代码。或尝试使用 valgrind 查找问题的根源。

Of course, I can't say for sure unless you post some relevant code. Or try using valgrind to find the source of the problem.

这篇关于我得到这个错误:“glibc detected”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆