段錯誤如果是自己書寫代碼的時候寫出來的段錯誤對於比較熟悉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操作的時候更應該注意;