看板 EE_DSnP 關於我們 聯絡資訊
我function都完成 compile也順利通過 可是當我執行testBdd時 卻跑出下面的error *** glibc detected *** ./testBdd: munmap_chunk(): invalid pointer: 0xb7ee700c *** ======= Backtrace: ========= /lib/libc.so.6(cfree+0x1bb)[0xaf181b] /usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xa1fef1] ./testBdd[0x804c27b] ./testBdd(__gxx_personality_v0+0x147)[0x804910b] ./testBdd[0x805180b] ./testBdd[0x805186b] /lib/libc.so.6(__libc_start_main+0xdc)[0xa9df2c] ./testBdd(__gxx_personality_v0+0x7d)[0x8049041] ======= Memory map: ======== 00716000-00721000 r-xp 00000000 03:01 6612703 /lib/libgcc_s-4.1.1-20070105.so.1 00721000-00722000 rwxp 0000a000 03:01 6612703 /lib/libgcc_s-4.1.1-20070105.so.1 0096c000-00a4c000 r-xp 00000000 03:01 7994294 /usr/lib/libstdc++.so.6.0.8 00a4c000-00a4f000 r-xp 000e0000 03:01 7994294 /usr/lib/libstdc++.so.6.0.8 00a4f000-00a51000 rwxp 000e3000 03:01 7994294 /usr/lib/libstdc++.so.6.0.8 00a51000-00a57000 rwxp 00a51000 00:00 0 00a6b000-00a84000 r-xp 00000000 03:01 6612674 /lib/ld-2.5.so 00a84000-00a85000 r-xp 00018000 03:01 6612674 /lib/ld-2.5.so 00a85000-00a86000 rwxp 00019000 03:01 6612674 /lib/ld-2.5.so 00a88000-00bbf000 r-xp 00000000 03:01 6612690 /lib/libc-2.5.so 00bbf000-00bc1000 r-xp 00137000 03:01 6612690 /lib/libc-2.5.so 00bc1000-00bc2000 rwxp 00139000 03:01 6612690 /lib/libc-2.5.so 00bc2000-00bc5000 rwxp 00bc2000 00:00 0 00bc7000-00bec000 r-xp 00000000 03:01 6612701 /lib/libm-2.5.so 00bec000-00bed000 r-xp 00024000 03:01 6612701 /lib/libm-2.5.so 00bed000-00bee000 rwxp 00025000 03:01 6612701 /lib/libm-2.5.so 00cea000-00ceb000 r-xp 00cea000 00:00 0 [vdso] 08048000-08056000 r-xp 00000000 00:18 11470719 /export/home/B95/b95901164/bdd/src/bdd/test/testBdd 08056000-08057000 rw-p 0000d000 00:18 11470719 /export/home/B95/b95901164/bdd/src/bdd/test/testBdd 09079000-090b1000 rw-p 09079000 00:00 0 b7e71000-b7f5f000 rw-p b7e71000 00:00 0 b7f6e000-b7f6f000 rw-p b7f6e000 00:00 0 bfbf5000-bfc0b000 rw-p bfbf5000 00:00 0 [stack] 已經終止 看起來好像權限方面的問題?? 不知道是怎麼一回事? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.235 ※ 編輯: jokerspy 來自: 140.112.4.235 (06/23 10:58)
sa901119:memory error? 06/23 10:58
ric2k1:gdb or ddd 開一下看它 crash 在哪一行? 06/23 11:29
jokerspy:crash在 cache reset() 可是我之前有測試過cache reset() 06/23 11:57
jokerspy:是沒有問題的阿@@ 06/23 11:58
jokerspy:reset(){_size=0;if(_cache!=0)delete _cache;_cache=0;} 06/23 12:21
ric2k1:那應該是有別的變數 corrupt 到 cache 的 memory 了... 06/23 12:30
Trumen:你在cache的destructor裡面有寫reset()嗎? 06/23 12:35
Trumen:還有BddMgr::reset()有做_computedTable.reset()嗎 06/23 12:36
jokerspy:真人 都有耶~ 教授 請問是別的變數使用到cache的記憶體嗎 06/23 12:46
Trumen:因為你在BddMgr::reset()先做了_computedTable.reset() 06/23 12:54
Trumen:所以Cache::_cache的位置已經先被free一次 06/23 12:55
Trumen:而程式關掉之後 Cache呼叫destructor 同樣位置又被free一次 06/23 12:56
jokerspy:@@對耶~ 我試試看 06/23 12:57
jokerspy:好像還是不是耶@@ 因為是程式剛開始就crash了 init裡面 06/23 13:03
jokerspy:reset就crash 這時候應該還沒destruct吧 而且我把其中一 06/23 13:03
jokerspy:comm掉也沒用 06/23 13:04
jokerspy:@@comm掉_computedTable.reset()就可以 怪怪 06/23 13:08
Ultor:有 delete [] 漏打 [] 嗎? 06/23 14:28
jokerspy:喔耶謝謝樓上解決了 也謝謝真人和教授 06/23 14:48
muxiv: 是沒有問題的阿@@ https://muxiv.com 07/12 00:19