段错误如果是自己书写代码的时候写出来的段错误对于比较熟悉c语言的开发者来说,自己立马能够意识到段错误位置。但是平常或者刚刚开始学习的人则不太好调试段错误;
这边说一种比较笨但是好用的办法调试段错误,如果是自己写出来的,可以采用打印加延时的操作;
比如:
char buf[5];
char dstBuf[10];
memcpy(buf,dstBuf,sizeof(dstBuf));
这个段错误的调试可以如下方式:
char buf[5];
char dstBuf[10];
printf(“debug start\r\n");
sleep(1);
memcpy(buf,dstBuf,sizeof(dstBuf));
printf(“debug stop\r\n");
sleep(1);
通过以上这种方式段错误不会在出错的时候直接打印出来,因为程序会等待,这样我们就可以确认代码出错在哪一段;
当然其他的段错误的调试方法还很多gdb什么的,最好是在书写的时候注意不要引入段错误;尤其多线程的时候或者消息队列socket操作的时候更应该注意;