Linux下C/C++程式調試基礎(GCC,G++,GDB,CGDB,DDD)

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   art   問題   ar   


在寫程式的時候,經常會遇到一些問題,比如某些變數計算結果不是我們預期的那樣,這時我們需要對程式進行調試。本文主要介紹調試C/C++在Linux作業系統下主要的調試工具。

在Linux下寫程式,C/C++主要的編譯器有GCC/G++,ICC等,像我等窮碼農,最喜歡GCC了,很大原因是他免費!所以,我們以GCC/G++為例介紹主要的調試工具。

分以下幾個內容介紹:

1、調試之前的工作

2、選擇調試工具

3、調試步驟

點我,請幫我投一票!

調試之前的工作

    編譯器在編譯階段需要產生可供調試的代碼,才能被調試器調試。可以如下做:

gcc -g -ggdb ./yourcode.c -o yourapp.exe

    這樣編譯代碼可以產生供gdb調試的符號資訊。


選擇調試工具

    gdb當時我們要使用的調試工具,不過他是命令列中使用的,多少有點不方便。


    CGDB和DDD都是基於GDB開發的,他們只是增加了更加容易互動的介面。其中CGDB也是在命令列中使用的,使用方式與GDB一樣,只是增加了代碼顯示的介面。


    DDD也是GNU開發的,他也是基於GDB的,只是使用了可視化介面,比CGDB更加容易操作。


    在有些情況下,我的Linux上可能沒有裝X-Sever,這樣就沒有圖形顯示功能,此時我們只能用命令列方式使用調試工具,所以gdb和cgdb應用更廣泛些。一般我會使用CGDB,他的操作跟gdb完全類似,很容易上手。


調試

    使用下面的命令啟動程式。

cgdb ./youapp.exe

    注意,這裡我們使用的是cgdb,如果你沒有安裝cgdb,首先應該安裝它!ubuntu使用者的安裝方式如下:

sudo apt-get install cgdb

    啟動軟體後,常用的幾個命令因該熟練掌握:

    1、設定斷點命令,程式在執行時遇到斷點會停下來,執行停止後可以進行變數值的檢查。

break [line_number]

例如:break youcode.cpp:32,這個命令是說在youcode.cpp第32行代碼處設定斷點,程式運行至此時會停下來。


    2、顯示變數的值,程式在斷點處停止時可以列印變數的值。

print [var]

例如:print a,這句命令表示列印變數a的值。print也可以縮寫成p。


    3、逐步執行,程式在斷點處停止後,使用單步調試命令讓程式一步步往下執行。使用next命令可以完成這個任務,可以縮寫為n。


    4、進入內部,在調試過程中,如果想進入某個函數的內部,則可使用step命令。


    5、繼續執行到下一個斷點處。使用continue命令可以完成這個任務。


    以上命令是gdb調試時常用的命令,也是應該必須掌握的命令。如果你想知道更多如何使用這些命令,使用help command查看相關的協助。





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.