精華區beta EE_DSnP 關於我們 聯絡資訊
我的程式,在執行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