作者jokerspy (糾可)
看板EE_DSnP
標題[問題] testBdd 執行 error
時間Tue Jun 23 10:56:38 2009
我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