推 lunworld:Ric不虧是Ric......Orz 01/23 23:17
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.131.33
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.131.33
※ 編輯: ric2k1 來自: 59.121.131.33 (01/25 00:56)
※ 引述《ric2k1 (Ric)》之銘言:
※ 引述《ric2k1 (Ric)》之銘言:
為了不要讓大家辛苦做的 BDD 因為一些小錯誤而一大堆 testcases 沒過,
我試著去 figure out 大家錯誤的地方,
如果可以讓我很快看出來的,
我會改改看(ㄧ行為限)免得你後面的 commands 全部做不下去
以下是目前為止常見到造成錯誤的原因... (will repost if I find more later)
1. bddMgr->forceAddMap(str, ~v()); ==> segmentation fault later...
2. BddManager::forceAddBddMap 用 insert(...); ==> 這樣就不會 force 了...orz
3. BddNode::_debugBddAddr / _debugRefCount 忘記設回 false...
4. if (_bddMap.find(str) != _bddMap.end()) _bddMap.insert(...)
==> 是 "==" 吧... orz
5. xor/xnor initial value 設成 1 ==> 應該是 0
6. // if( cirMgr!=0 && cirMgr->getGate(options[1])!=0 ){
// FIXED by RIC for 1.do
if( cirMgr==0 || cirMgr->getGate(options[1])==0 ){
BddNode temp = bddMgr->getSupport(level);
bddMgr->forceAddBddMap(options[1],temp());
}else return CmdExec::errorOption(CMD_OPT_ILLEGAL,options[1]);
其他常見的錯誤, 我沒有去看為什麼...
1. xor/xnor 的 phase 弄反了
2. "brep -addr -rep a" not supported
常見的 crashes
1. bsetv -1 a
2. brep // no argument
3. band // no argument
4. band y a h // h() = 0
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.131.33