最近一直在linux上写程序,先把x windows上所有听说过没有听说过的IDE都装了一遍,非常的不好用,然后又逐个的试windows上的远程调试软件, 如Magic c++,uniwin等,还是国人写的软件,都用不了,甚至Magic c++在网站上提供的for linux的免费版本,编译都会报错。最后还是老老实实的用ssh登陆上去 make+ gdb. 虽然不是很熟练,但是还是稳定能用。只遇到有一个问题,当单步进入switch-case scope,看不到任何栈信息

1
2
3
4
5
switch(messageType) {
case P2P_FOOR: {
int piece_index=0;
int nothing; ...
}

break; info local

什么也看不到,谁能告诉我为什么 另外gcc编译信息和vs.net有很大差距。比如下面这段编译错误信息

LocalInterface.h:26: undefined reference to vtable for IStorage' Storage.o:(.gnu.linkonce.r._ZTI8CStorage[typeinfo for CStorage]+0x8): undefined reference to typeinfo for IStorage’ collect2: ld returned 1 exit status

浪费了一整天,还是让旁边一哥们帮我找出来的,原来是定义一个纯虚类做接口,而里面一个虚函数后面忘了写=0 以前以为vs.net有些编译出错信息就够无厘头的了,不想gcc更强。按我的经验,用gcc开发,基本上会比vs.net效率低一半以上。