![](/img/trans.png)
[英]glibc detected *** ./a.out: munmap_chunk(): invalid pointer:
[英]glibc detected *** ./a.out: free(): invalid pointer:
當我在linux中編譯(c ++程序)時出現以下錯誤請幫我
glibc detected *** ./a.out: free(): invalid pointer:0x0804878d *** ======= Backtrace: ========= /lib/libc.so.6[0xbd5f18] /lib/libc.so.6(__libc_free+0x79)[0xbd941d] /usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x3233fe1] ./a.out(__gxx_personality_v0+0x100)[0x8048514] ./a.out(__gxx_personality_v0+0x176)[0x804858a] /lib/libc.so.6(__libc_start_main+0xdc)[0xb877e4] ./a.out(__gxx_personality_v0+0x5d)[0x8048471] ======= Memory map: ======== 00b55000-00b6e000 r-xp 00000000 fd:00 6687029 /lib/ld-2.4.so 00b6e000-00b6f000 r-xp 00018000 fd:00 6687029 /lib/ld-2.4.so 00b6f000-00b70000 rwxp 00019000 fd:00 6687029 /lib/ld-2.4.so 00b72000-00c9e000 r-xp 00000000 fd:00 6687030 /lib/libc-2.4.so 00c9e000-00ca1000 r-xp 0012b000 fd:00 6687030 /lib/libc-2.4.so 00ca1000-00ca2000 rwxp 0012e000 fd:00 6687030 /lib/li
glibc檢測到* ./a.out:free():無效的指針:0x0804878d *
這意味着您可能會delete
尚未使用new
創建的da指針。
如果您需要任何有用的幫助,則實際上應該發布生成此問題的代碼。
如果查看堆棧跟蹤的這兩行,您將看到以0x8048000開始的頁面必須是可執行的(因為該頁面中的兩個地址0x8048514和0x804858a在堆棧上顯示為返回地址)。
./a.out(__gxx_personality_v0+0x100)[0x8048514] ./a.out(__gxx_personality_v0+0x176)[0x804858a]
您試圖釋放的地址0x0804878d在同一頁面中的偏移量為0x78d,因此它可能指向代碼,並且絕對指向可執行頁面中的地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.