日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux gdb基本概念

發(fā)布時間:2023/12/18 linux 25 如意码农
生活随笔 收集整理的這篇文章主要介紹了 linux gdb基本概念 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

GDB是一個功能強大的調(diào)試器,它是一個自由軟件,能夠用在許多UNIX平臺上。它同時也是Linux系統(tǒng)中的默認調(diào)試器。GDB已被移植到許多其他的計算機平臺上,并且能夠用于調(diào)試嵌入式實時系統(tǒng)。一般來說,GDB主要可以幫助我們完成以下四個方面的功能:  1, 啟動你的程序,可以按照你的自定義的要求隨心所欲的運行程序。 2,可以讓被調(diào)試的程序在你所指定的斷點處停住。  3, 當程序被停住時,可以檢查此時你的程序中所發(fā)生的事情。 4, 動態(tài)的改變你程序的執(zhí)行環(huán)境。  與圖形化的調(diào)試工具相比,GDB具有如下優(yōu)點: GDB的啟動速度比GUI快很多,當只需要快速檢查代碼中的某項內(nèi)容時,這就是一 個很重要的優(yōu)點。在與Eclipse比較時,這種啟動時間上的差距很大。

下面我在自己虛擬機上的一個進程拷貝的代碼進行的實驗

gcc main.c -g -o app

gdb app

之后我們就可以使用gdb進行調(diào)試了

run全速執(zhí)行,start開始執(zhí)行,這兩個命令如果有命令行參數(shù)的話最好加上(建議)

啟動界面

start直接執(zhí)行到了67行

list:可以查看代碼

list+num可以指明查看哪一行代碼

聽過break可以打斷點,info breakpoints可以查看我們用了哪些斷點,delete breakpoints可以取消斷點,這里我們需要注意一個問題就是,在virtual studio中的斷點,如果關(guān)閉了下次打開仍然存在,但是這里如果關(guān)閉了下次就不會存在了

相對應的,vs中有監(jiān)禁的功能,就是監(jiān)視變量,display就有這個功能,info display可以查看我們監(jiān)視了哪些變量,之后我們每次next和step的時候,都會在最后幾行顯示監(jiān)視的變量,delete就是刪除了

step就是按語句調(diào)式,next就是按照過程調(diào)式

set var 變量名=值  可以中途改變變量的值,

printf可以中間輸出變量的值

backtrace( bt )顯示程序的層次關(guān)閉,與函數(shù)調(diào)用棧幀,下面75行到26行跳到了另外一個函數(shù),這樣可以使用backtrace就可以看層次關(guān)系,兩個函數(shù)使用不同的棧,所以我們使用print argc的時候不好使,我們可以通過frame臨時跳到main中,

在一盒函數(shù)中我們使用finish可以挑戰(zhàn)到調(diào)用的開始位置

x(x/20wx)可一查看內(nèi)存,20表示查看20字節(jié),w表示word,x表示十六進制

continue  如果使用斷點的話我們使用continue可以按照斷電進行

set follow-fork-mode (child or parent)  調(diào)用父進程子進程

core啟用core文件,幫助調(diào)試

在編譯運行app的時候,如果有問題,會生成一個core文件通過gdb core會直接發(fā)現(xiàn)錯誤,這種方法非常方便,但是core的文件特別大

quit退出調(diào)試

總結(jié)

以上是生活随笔為你收集整理的linux gdb基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。