gdb調試使用教程


假設當前目錄下有5個文件。

 

文件內容如下:

// add.c
int myadd(int a, int b)
{
    return a+b;
}

// mul.c
int mymul(int a, int b)
{
    return a*b;
}

// div.c
int mydiv(int a, int b)
{
    return a/b;
}

// x.h
int myadd(int a, int b);
int mymul(int a, int b);
int mydiv(int a, int b);

// x.c
#include <stdio.h>
#include "x.h"

int main()
{
    int a = 100;
    int b = 12;
    int add, mul, div;
    add = myadd(a, b);
    mul = mymul(a, b);
    div = mydiv(a, b);
    
    printf("%d + %d = %d\n", a, b, add);
    printf("%d * %d = %d\n", a, b, mul);
    printf("%d / %d = %d\n", a, b, div);
    
    return 0;
}

 

 

 

1. 使用gcc編譯文件,注意要加上-g參數。(-g : 在執行代碼中包含調試信息)

 

2. 使用gdb調試可執行文件x,進入調試頁面

gdb x

 

 

常用命令:

(gdb)list:查看原代碼(list-n,從第n行開始查看代碼。list+ 函數名:查看具體函數,list main 返回主函數),簡寫l

(gdb)break+num:在第num行設置斷點,簡寫b。b+函數名,給函數設置斷點

(gdb)run:重新開始運行文件, 簡寫r

(gdb)print:打印值及地址, 簡寫p

(gdb)next:單步調試(逐過程,函數直接執行),簡寫n

(gdb)step:單步調試(逐語句:跳入自定義函數內部執行),簡寫s

(gdb)quit:退出gdb,簡寫q

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM