Linux学习笔记-gdb调试的补充说明
生活随笔
收集整理的這篇文章主要介紹了
Linux学习笔记-gdb调试的补充说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
gdb調試的補充說明
程序運行截圖如下:
源碼如下:
#include <stdio.h>void test(int i){if(i==0){return;}printf("The value is %d\n",i);test(--i); }int main(){test(25);return 0; }當程序編譯時帶‐g選項時,程序才可以被調試實際上,當以‐g選項編譯時,編譯器將"調試信息"加在了目標程序里,因此,目標程序的體積將顯著變大
比較輸出的目標程序的體積:
g++?‐g?main.cpp?‐o?helloworld
g++?main.cpp?‐o?helloworld
體積如下所屬:
?
判斷一個程序是否帶有“調試信息”
一:objdump ‐h helloworld
有debug信息就可以調試
?
第二種方法:
gdb??helloworld
如果調試信息,會提示:
Reading?symbols?from?helloworld...(no?debugging
symbols?found)...done.
如下:
gdb的使用場合
適用的場合:
‐ 單元測試(較短的代碼,功能單純的函數)
‐ 段錯誤的定位
不太適用的場合:
‐ 大型程序,尤其是程序中使用了多線程
‐ 單步調試的時候問題無法復現,只能在正常運行的時候復現
(使用打印調試)
總結
以上是生活随笔為你收集整理的Linux学习笔记-gdb调试的补充说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt工作笔记-QVector下标访问和迭
- 下一篇: C++|Qt之QTcpServer基本用