作者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
1F:推 Steggie:我稍早也有遇到这个问题 感觉上是 cache 存错东西 @@ 01/20 22:25
2F:→ Steggie:我把 ~ret() 这样的东西 write 到 table 里 01/20 22:25
3F:→ Steggie:可是 () 的优先权 > ~ 所以就错了...@@ 01/20 22:25
4F:推 davidlue:喔喔天呀 我终於知道我错在哪里了~T.T 大感谢剑龙!! 01/20 22:40
5F:→ davidlue:我在buildbdd里addBddmap时也写了~ret()这种东西orz 01/20 22:40
6F:推 Steggie:哈哈 看到 build 竟然跑出 segmentation fault 真的超伤心 01/20 22:58