我們在C++開發過程中時常避免不了要調試追蹤,一下介紹最主流的三種調試工具:
一.GDB調試
1.coredump文件:
coredump文件是程序異常時系統產生的錯誤日志文件,即核心轉儲文件;
編譯一個debug程序,必須是debug版本,否則無法產生coredump文件;
編譯命令:g++ test.cpp -o mytest -g,必須要加上"-g"才能生成由debug info的文件;
執行程序直至崩潰,讓其產生coredump文件;
2.GDB命令調試:
安裝GDB命令:sudo apt-get install gdb下載,執行…/configure,執行make j4,執行sudo make install安裝
GDB常用命令:run,break,continue,frame,list,next等
調用GDB命令:gdb mytest core.2222
查看調用堆棧命令:bt 來看到崩潰時執行的程序行
切入出問題的堆棧中命令:f 0(f加上堆棧編號)看以看到當時執行的程序代碼行,確認出問題的點
查看對應的指針命令:p ptr(指針名稱) 可以看到該指針為空等原因
二.windebug調試
安裝windebug,控制面板 -> 程序 -> Windows Software Development Kit -> 右鍵選擇更改 -> change -> 勾選Debugging Tools For Windows -> 安裝;
為進程創建轉儲文件(dmp),既可以在任務有管理中選中進程 -> 右鍵 -> 創建轉儲文件;
運行要調試的程序;
打開windebug工具,菜單欄選擇"file",“Attach to Process”;
選擇要調試的目標程序;
附加;
附加后程序會被暫停,這時候需要使用Debug中go、step out、stepover等命令讓程序繼續執行,直到出現異常,Windbg會檢測出異常,并停止;
windbg發現異常并中斷,然后輸入:.dump /f e:dump/XXXX.dmp,來生成全信息的dmp文件;
三.adb調試
1.介紹
adb全稱Android Debug Bridge是C/S模式的橋接調試工具,可以上傳/下載文件,運行設備shell命令,對設備安裝和卸載應用等功能,主要用于andriod調試,也支持Linux嵌入式設備調試;
2.安裝adb
adb支持Windows和Linux,在adb官網下載;Windows上解壓后設置系統環境變量指向解壓釋放的目錄;
3.連接使用
通過數據線連接開發板;
打開cmd命令窗口,即可使用adb命令調試設備;
4.常用命令
adb verison 顯示adb版本;
adb help 幫助信息;
adb devices 查看當前已連接的設備列表;
adb root 獲取root權限;
adb -s 222 shell 與設備號為222的設備建立連接;
exit 退出設備連接;
adb -p 6666 start-server 指定6666端口來啟動設備adb服務;
adb shell pm list packages 列出當前設備中所有的包名;
adb install -r <文件路徑\apk> 覆蓋式安裝apk包;
adb push C:\user\test /usr/local/ 將C盤下的test文件拷貝到設備的usr/local目錄下;
adb shell getprop ro.product.model 獲取設備型號;