作者davidlue (諮詢暨策略主任)
看板EE_DSnP
標題Bbuild會 segmnetation fault...orz
時間Sat Jan 20 22:15:11 2007
我的程式,在執行do.C17到bbuild -a這行時
會出現"程式記憶體區段錯誤"
我把bddCir.cpp裡面每種Gate的 buildbdd()
一開頭都加上
cout<<getName()<<" 's buildBdd() is called"<<endl;
於是錯誤訊息就變成
bdd> bbuild -a
Building 22GAT$PO...
22GAT$PO 's buildBdd() is called(PO)
22GAT 's buildBdd() is called(OR)
10GAT 's buildBdd() is called(AND)
16GAT 's buildBdd() is called(AND)
11GAT_B 's buildBdd() is called(INV)
11GAT 's buildBdd() is called(AND)
Building 23GAT$PO...
23GAT$PO 's buildBdd() is called(PO)
23GAT 's buildBdd() is called(OR)
19GAT 's buildBdd() is called(AND)
Program received signal SIGSEGV, Segmentation fault.
0x080653c3 in BddNodeInt::incRefCount (this=0xf6a4b9cc) at bddNode.h:121
121 void incRefCount() { ++_refCount; }
最後面那個是gdb和我說的錯誤地方
可是......為什麼會錯在這種地方呀orz
從C17.cir來看
23GAT->19GAT->7GAT 然後就該return結束了呀
16GAT
為什麼會錯T.T
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.247.17
推 Steggie:我稍早也有遇到這個問題 感覺上是 cache 存錯東西 @@ 01/20 22:25
→ Steggie:我把 ~ret() 這樣的東西 write 到 table 裡 01/20 22:25
→ Steggie:可是 () 的優先權 > ~ 所以就錯了...@@ 01/20 22:25
推 davidlue:喔喔天呀 我終於知道我錯在哪裡了~T.T 大感謝劍龍!! 01/20 22:40
→ davidlue:我在buildbdd裡addBddmap時也寫了~ret()這種東西orz 01/20 22:40
推 Steggie:哈哈 看到 build 竟然跑出 segmentation fault 真的超傷心 01/20 22:58