作者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
1F:推 ric2k1:This is not your code. Please do "up" until reaching 01/18 20:35
2F:→ ric2k1:your code.... 01/18 20:35
3F:推 will1220:我的code是跑到BRESETCmd的最下面就跳到别的code了@@ 01/18 20:43
4F:推 ric2k1:哎呀 有这样问题的明天早上过来我办公室, 我示范一下怎麽 01/18 20:51
5F:→ ric2k1:debug... 01/18 20:52
6F:推 scxz:我也是在destructer这里crush@@ 奇怪 01/18 23:46