ubuntu安裝gdb,linux gdb基本概念

 2023-11-18 阅读 29 评论 0

摘要:GDB是一個功能強大的調試器,它是一個自由軟件,能夠用在許多UNIX平臺上。它同時也是Linux系統中的默認調試器。GDB已被移植到許多其他的計算機平臺上,并且能夠用于調試嵌入式實時系統。一般來說,GDB主要可以幫助我們完成以下四個方面的功能: ?1, 啟

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

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

gcc main.c -g -o app

linux調試工具gdb。gdb app

之后我們就可以使用gdb進行調試了

?

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

?

?啟動界面

start直接執行到了67行

?

list:可以查看代碼

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

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

?

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

?

step就是按語句調式,next就是按照過程調式

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

?

printf可以中間輸出變量的值

?

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

在一盒函數中我們使用finish可以挑戰到調用的開始位置

?

?x(x/20wx)可一查看內存,20表示查看20字節,w表示word,x表示十六進制

?

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

?

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

?

core啟用core文件,幫助調試

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

?

quit退出調試

轉載于:https://www.cnblogs.com/13224ACMer/p/6391873.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/174405.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息