Linux下gdb調試,Linuxgdb調試

來源:互聯網
上載者:User

Linux下gdb調試,Linuxgdb調試

關於gdb的其他客套話不多說,直接進入正題。


一、gdb基本命令列表

命令 解釋 簡寫
file 裝入想要調試的可執行檔
list 列出產生執行檔案原始碼的一部分 l
next 執行一行原始碼但不進入函數內部 n
step 執行一行原始碼而且進入函數內部 s
run 執行當前被調試的程式 r
continue 繼續執行程式 c
quit 終止gdb q
print 輸出當前指定變數的值 p
break 在代碼裡設定斷點 b
info break 查看設定斷點的資訊 ib
delete 刪除設定的斷點 d
watch 監視一個變數的值,一旦值有變化程式停住 wa
help gdb中的協助命令 h


二、gdb命令運用舉例

1.建立一個源檔案vi yrp.cc,原始碼如下:

#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
        int tmp;
        tmp=a;
        a=b;
        b=tmp;
}
int main()
{
        int i,j;
        cout<<endl<<"Input two int number:"<<endl;
        cin>>i>>j;
        cout<<"Before swap(),i="<<i<<" j="<<j<<endl;
        swap(i,j);
        cout<<"After swap(),i="<<i<<" j="<<j<<endl<<endl;
        return 0;
}


2.產生可執行檔g++ -g -o yrp yrp.cc  注意必須使用-g參數,編譯會加入調試資訊,否則無法調試執行檔案.



3.啟動調試gdb yrp



載入被偵錯工具file yrp



4.查看源檔案list 1,(由第一行開始)斷行符號重複上一次指令



5.設定調試斷點break 16,在第16行設定斷點,info break查看斷點資訊(簡寫ib)



6.調試運行輸入run



7.單步調試step,進入函數內部



8.查看變數print  舉例print b



9.查看函數堆棧bt,退出函數finish



10.繼續運行直到下一個斷點或主函數結束continue



11.退出調試quit





結束!







linux 下面怎使用gdb調試多個c檔案?

由衷的建議你去學校一下makefile的使用方法,將幾個檔案混合編譯成一個可執行檔,記住在編譯的過程中要添加-g的參數,這樣編譯出來的可執行檔才能通過gdb進行測試。注意makefile的文法要求很高,空格錯了都不行,如果你要學習linux環境的進階編程不會用makefile的話是會有重重困難的,祝你學習順利{100%原創,適當給分即可}

如果不使用makefile的話
gcc -g -o a.out 1.c 2.c 3.c 4.c 5.c
a.out為產生的檔案名稱。其他的你懂的!
 
Linux C++怎用gdb調試?

既然會在windows下調試,在linux下也是一樣的。
首先,linux的環境變數PATH的設定,如果是想臨時使用的,可以直接在shell終端中:
export PATH=$PATH:[你要設定的路徑]
$PATH相當於win下的%PATH%,這裡用冒號:分隔,相當於win下的分號;
如果想永久生效,可以:
cd ~ //到該使用者目錄下
vi .bash_profile //開啟屬性檔案
export PATH=$PATH:[你要設定的路徑] //同樣的設定
:wq //儲存
這樣就設定好了,但預設情況下該屬性檔案在使用者登入時才生產,如果想立即生效,可以:
source ~/.bash_profile

編譯器植入linux?是在linux下安裝gcc g++ gdb吧?參考這篇文章吧:
blog.csdn.net/...948806

至於調試用的命令,簡單地說:
1.在編譯時間使用-g參數,如:gcc -g foo.c -o foo
2.然後進行調試,如:
gdb ./foo //調試foo
(gdb) l //列出原始碼
(gdb) b 5 //在第5行加入斷點
(gdb) r //運行調試
(gdb) p size //假如有個變數為size,這樣看它的值
(gdb) c //繼續執行直到下一個斷點
(gdb) n //執行下一行語句
(gdb) s //進入正在執行的函數內部
....
不寫了,看這篇文章吧
blog.csdn.net/...935052
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.