GDB 除錯程式碼
一、Linux程式gcc編譯步驟:
Gcc編譯過程主要的4個階段:
l 預處理階段,完成宏定義和include檔案展開等工作;(.i)
l 根據編譯引數進行不同程度的最佳化,編譯成彙編程式碼(.s.S)
l 用匯編器把彙編程式碼進一步生成目的碼(.o)
l 用聯結器把生成的目的碼和系統或使用者提供的庫連線起來,生成可執行檔案
格式:
l gcc -E test.c//預處理階段
l Gcc -S test.c//編譯階段
l Gcc -c test.c//彙編階段
l Gcc -o test test.c//連結階段
二、Linux程式gdb除錯步驟:
Gdb的功能:
l 設定斷點
l 監視程式變數的值
l 程式的單步執行
l 顯示、修改變數的值
l 顯示、修改暫存器
l 檢視程式的堆疊情況
l 遠端除錯
Gdb除錯過程:
1、程式經過預處理後,即進入編譯階段,進入編譯階段,首先宣告編譯:
2、格式: gcc-o test test.c -g
3、進入編譯: gdb test
4、顯示需要編譯除錯的源程式:l(list)//list filename
5、設定斷點:b(break)行號
6、檢視設定的斷點:info b
7、執行除錯程式:run
8、跳到下一個斷點:c(continue)
9、單步執行的話使用:n(next)/s(step into)跳到函式體 //區別在與:next執行函式體,而step不執行函式體
10、除錯過程中檢視某個變數的變化:print i (每次都要手動設定)//display i(設定一次一直尾隨,直到用“undisplay 變數標號” 停止)
11、退出當前的除錯使用finish 跳出函式
12、清楚斷點 clear 行號
13、Delete 斷點資訊序號// 刪除所有斷點或設定的要刪除的斷點
14、退出除錯 q
15、b num if i==20 設定斷點的觸發條件
16、condition num i==50 改變斷點的觸發條件
17、GDB中原始碼檢視命令
list /l 行號或函式名 //檢視指定位置程式碼
list <linenum> //顯示程式第linenum行的周圍的源程式
list <function> //顯示函式名為function的函式的源程式
list // 顯示當前行後面的源程式
list <filename:funtion> //顯示哪個檔案中的哪個函式的源程式
eg: list src/fun1.c:fun1
list <filename:linenum> //哪個檔案的哪一行周圍的源程式
eg:list src/fun1.c:1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561984/viewspace-2221185/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用GDB除錯Android Native 層程式碼除錯Android
- 用GDB除錯程式(六)除錯
- gdb除錯除錯
- Linux中使用GDB除錯程式Linux除錯
- gdb除錯正在執行的程式除錯
- GDB除錯指令除錯
- gdb除錯多程序除錯
- gdb除錯總結除錯
- gdb除錯快速上手除錯
- 在MacOS上使用gdb(cgdb)除錯Golang程式Mac除錯Golang
- Linux核心使用gdb除錯Linux除錯
- C語言——gdb除錯C語言除錯
- 介紹 GDB 除錯 Go除錯Go
- GDB除錯使用記錄除錯
- GDB除錯命令詳解除錯
- gdb高階除錯命令高階除錯
- gdb除錯coredump檔案除錯
- c/c++ gdb 除錯帶引數的程式C++除錯
- gdb除錯傳入引數除錯
- C編譯: 使用gdb除錯編譯除錯
- GDB除錯基礎使用方法除錯
- NASM 與 GDB 簡易除錯指南ASM除錯
- OpenHarmony系統使用gdb除錯init除錯
- Linux—gdb除錯簡單實現Linux除錯
- GDB 除錯 Mysql 實戰(一)原始碼編譯安裝除錯MySql原始碼編譯
- Python 程式碼除錯—使用 pdb 除錯Python除錯
- gdb除錯core dump檔案之二除錯
- GDB除錯-從入門到實踐除錯
- 聊一聊 GDB 除錯程式時的幾個實用命令除錯
- [docker+gdb] 除錯 PHP 原始碼,看 strval 函式 C 實現Docker除錯PHP原始碼函式
- gdb多執行緒多程序除錯命令執行緒除錯
- vue 程式碼除錯神器Vue除錯
- 嵌入式GDB除錯Linux C程式或交叉編譯(開發板)除錯LinuxC程式編譯
- gdb 除錯 new 一個物件主要兩個 handler除錯物件
- 在海思晶片上使用GDB遠端除錯晶片除錯
- 利用QEMU+GDB搭建Linux核心除錯環境Linux除錯
- 使用 vscode 除錯前端程式碼VSCode除錯前端
- phpstorm 使用 Xdebug 除錯程式碼PHPORM除錯