作者will1220 (小崴)
看板EE_DSnP
標題Re: [問題] 有關cmd parser...
時間Thu Jan 18 18:13:16 2007
※ 引述《will1220 (小崴)》之銘言:
: 標題: [問題] 有關cmd parser...
: 時間: Thu Jan 18 13:43:11 2007
:
: 終於要開始寫parser 可是一開始就碰到問題...
: 我在.h檔宣告以後想說先寫個breset來看看
: CmdExecStatus
: BRESETCmd::exec(const string& option)
: {
: vector<string> options;
: if(!CmdExec::lexOptions(option, options)) return CMD_EXEC_ERROR;
: if(options.size()<3) return CmdExec::errorOption(CMD_OPT_MISSING, "");
: return CMD_EXEC_DONE;
: }
: 結果我在終端機輸入
: bdd> breset
: Missing option!!
:
: bdd> breset s
: Missing option!!
: *** glibc detected *** free(): invalid pointer: 0x08083a98 ***
: 已經終止
:
: 打breset是正確...但後面只要有東西就不行...
: 請問這是怎麼一回事咧??
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 61.229.229.142
: 推 ric2k1:用 debugger 看到底是 crash 在哪裡吧... 01/18 14:47
: → ric2k1:建議的 debugger commands: up/down/where 01/18 14:48
我試著用ddd去debug看看crash的原因...雖然對ddd還是沒有很熟
用up/down發現似乎是跑完BRESETCmd以後
然後跑到vector<string> options的destructor就crash掉了..
找一找好像是到
void deallocate(pointer _p,size _type)
{ ::operator delete(_p) }
就跳出了...這好像是stl裡面的code??
實在還是不知道怎麼辦><"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.238.12
推 ric2k1:This is not your code. Please do "up" until reaching 01/18 20:35
→ ric2k1:your code.... 01/18 20:35
推 will1220:我的code是跑到BRESETCmd的最下面就跳到別的code了@@ 01/18 20:43
推 ric2k1:哎呀 有這樣問題的明天早上過來我辦公室, 我示範一下怎麼 01/18 20:51
→ ric2k1:debug... 01/18 20:52
推 scxz:我也是在destructer這裡crush@@ 奇怪 01/18 23:46