作者kbjs (kk)
看板EE_DSnP
标题[问题] 一见setOptCmd()就会出现 程式记忆体区段错误
时间Wed Apr 15 21:56:22 2009
大家好,今晚我想请问的是
我在写CmdParser::getCmd()时
只要是一用到CmdExec::setOptCmd() 执行时便会出现 程式记忆体区段错误
甚至是随便写个:
string a = "test";
e->setOptCmd(a);
↑
它也会在这行crash掉
用ddd去看 是说Segmentation fault
还有一段天书
0x03c9db99 <__gnu_cxx::__exchange_and_add(int volatile*, int)+9>
: lock xadd %eax,(%edx)
也试过在之前加 e = new CmdExec;
但compile时说是 错误:无法在有抽象类型"CmdExec"的物件指派记忆体
烦请各位高手、教授指导,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.243.224
1F:推 bnsblue:CmdExec里面有pure virtual function 因此不能被宣告成 04/15 22:01
2F:→ bnsblue:物件 04/15 22:01
3F:→ bnsblue:另外 ddd那段看不懂的话 可以一直打up 到你程式的scope 04/15 22:02
4F:→ bnsblue:再去debug 04/15 22:02
5F:推 riteden:但是为什麽不能e = new QuitCmd? 04/15 22:18
6F:→ kbjs:upup出现了 void setOptCmd(const string& str) { _optCmd = 04/15 22:22
7F:→ kbjs:str;}这句 04/15 22:23
8F:推 bnsblue:我手边没有今年的code 你可以检查一下e的address是否正确 04/15 22:38
9F:→ bnsblue:五楼那个应该可以吧? 04/15 22:48
10F:推 ric2k1:请把所有的 error message 贴上来, 否则不易判断原因 04/16 21:26