作者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