當前位置:首頁 » 網頁前端 » gdb執行命令腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

gdb執行命令腳本

發布時間: 2022-09-27 01:40:13

㈠ gcc中怎麼使用gdb命令

在linux系統中,默認是沒有安裝gcc編譯器的,可以通過命令
rpm -q | grep gcc

來查看。安裝命令為:
yum -y install gcc

安裝後,編寫一個.c結尾的文件。
gcc test.c

就會默認輸出一個a.out的輸出文件,這個輸出文件就是可執行文件。
如果加上-o選項,則可以自定目標文件。
gcc -o test test.c

test就是它的可執行文件。
一般都默認加上-Wall 選項,可以自動提示一些出錯警告的信息。
gcc -Wall -o test test.c

gbd
以上就是常用的gcc相關知識了。下面就是它的調試,調試通常使用gdb。在編譯的時候需要加上選項-ggdb3選項
gcc -ggdb3 -Wall -o test test.c

這樣在沒有出錯的情況下
gdb test

就進入調試窗口
輸入下面命令可以進行如下的操作:
break 設置斷點
break 21 在第21行設置斷點
break main 在main函數處設置斷點
break test 在函數test處設置斷點
step / s 下一步,直接執行下一條程序
continue / cont 下一段,如果遇到函數,不會進入函數,逐過程,有點類似VS裡面的F10
run 運行
finish 結束調試
tbreak設置臨時斷點
print / p 顯示某個變數的值
p *array@len 輸出數組
p i 輸出i的值
enable 恢復失效的斷點
disable 使斷點失效
clear 清除斷點
backtrace / bt 查看堆棧信息
相關的輸出格式
x 十六進制格式
d 十進制格式
u 十六進制無符號
o 八進制顯示
t 二進制顯示
a 十六進制顯示
c 字元格式顯示
f 浮點數格式顯示

㈡ gdb怎麼用

GDB調試,建議去下個系統的文檔;
GDB調試器
GCC用於編譯程序,而Linux的另一個GNU工具gdb則用於調試程序。gdb是一個用來調試C和C++程序的強力調試器,我們能通過它進行一系列調試工作,包括設置斷點、觀查變數、單步等。
其最常用的命令如下:
file:裝入想要調試的可執行文件。
kill:終止正在調試的程序。
list:列表顯示源代碼。
next:執行一行源代碼但不進入函數內部。
step:執行一行源代碼而且進入函數內部。
run:執行當前被調試的程序
quit:終止gdb
watch:監視一個變數的值
break:在代碼里設置斷點,程序執行到這?鍤憊移?
make:不退出gdb而重新產生可執行文件
shell:不離開gdb而執行shell
2)從你的描述上看來,你是用單獨的gdb.exe調試器,調試的時候不需要運行程序的,編譯的時候 只要加上相應的參數(」-g「)產生編譯後的可執行文件,
以gcc編譯sum.c(加-g選項產生debug信息):
gcc –g –o sum sum.c
在命令行上鍵入gdb sum並按回車鍵就可以開始調試sum了,再運行run命令執行sum。

㈢ 如何寫gdb命令腳本

首先般命令其實都程序
裝系統路徑程序程序名都作命令直接調用
具體哪些路徑系統路徑Linux用$PATH$命令查看(通路徑用冒號隔)
gdb其實gcc/g++編譯器附帶調試器
雖現主流Linux發行版都自帶gcc編譯器附帶gdb調試器
畢竟算Linux系統內部組件所自能算做Linux自帶命令

㈣ 怎樣用GDB調試一個由腳本文件啟動的程序

使用GDB
一般來說GDB主要調試的是C/C++的程序。要調試C/C++的程序,首先在編譯時,我們必須要把調試信息加到可執行文件中。使用編譯器(cc/gcc/g++)的 -g 參數可以做到這一點。如:
$gcc -g -Wall hello.c -o hello
$g++ -g -Wall hello.cpp -o hello
如果沒有-g,你將看不見程序的函數名、變數名,所代替的全是運行時的內存地址。當你用-g把調試信息加入之後,並成功編譯目標代碼以後,讓我們來看看如何用gdb來調試他。
啟動GDB的方法有以下幾種:
gdb <program>
program也就是你的執行文件,一般在當前目錄下。
gdb <program> core
用gdb同時調試一個運行程序和core文件,core是程序非法執行後core mp後產生的文件。
gdb <program> <PID>
如果你的程序是一個服務程序,那麼你可以指定這個服務程序運行時的進程ID。gdb會自動attach上去,並調試他。program應該在PATH環境變數中搜索得到。
以上三種都是進入gdb環境和載入被調試程序同時進行的。也可以先進入gdb環境,在載入被調試程序,方法如下:
*在終端輸入:gdb
*在gdb環境中:file <program>
這兩步等價於:gdb <program>
GDB啟動時,可以加上一些GDB的啟動開關,詳細的開關可以用gdb -help查看。我在下面只例舉一些比較常用的參數:
-symbols <file>
-s <file>
從指定文件中讀取符號表。
-se file
從指定文件中讀取符號表信息,並把他用在可執行文件中。
-core <file>
-c <file>
調試時core mp的core文件。
-directory <directory>
-d <directory>
加入一個源文件的搜索路徑。默認搜索路徑是環境變數中PATH所定義的路徑。

㈤ 如何寫gdb命令腳本

首先般命令其實都程序
裝系統路徑程序程序名都作命令直接調用
具體哪些路徑系統路徑Linux用$PATH$命令查看(通路徑用冒號隔)
gdb其實gcc/g++編譯器附帶調試器
雖現主流Linux發行版都自帶gcc編譯器附帶gdb調試器
畢竟算Linux系統內部組件所自能算做Linux自帶命令

㈥ linux入門基礎(四)Gdb調試程序

Gdb調試
注意:在Gcc編譯選項中一定要加入
–g
退出GDB:quit

Ctrl+d
調試過程:
1.
查看文件
命令:
(gdb)
l
命令:(gdb)
b
行號
註:到第17行停止,並沒有執行17行
3.
查看斷點情況
info
b
4.
運行代碼
r
命令:
(gdb)
r
(也可以指定行開始運行,在r後面加上行號)
5.
查看變數值
p
命令:(gdb)
p
變數名
6.
設置監視點:
watch
z
(變數名)
也可以是復雜的表達式
7.
單步運行
命令:(gdb)
n
(逐過程)
8.逐步,會進入函數
命令:(gdb)
s
9.條件斷點
將正常斷點轉變為條件斷點:condition
如:condition
1
i
==
10
只有當滿足條件i
==
1時,才會在斷點1處暫停
10.
恢復程序運行
c
命令:
(gdb)
c
(程序就會運行,如果沒有斷點,就運行剩下部分,如果有斷點,就會運行到下一個斷點)
11.
去除斷點
clear
line_number
clear
filename:line_number
12.
help
12.1
help找出類別
12.2help從列表中

㈦ 如何寫gdb命令腳本

GDB是一個強大的命令行調試工具。雖然X Window提供了GDB的圖形版DDD,但是我仍然更鍾愛在命令行模式下使用GDB。大家知道命令行的強大就是在於,其可以形成執行序列,形成腳本。UNIX下的軟體全是命令行的,這給程序開發提代供了極大的便利,命令行軟體的優勢在於,它們可以非常容易的集成在一起,使用幾個簡單的已有工具的命令,就可以做出一個非常強大的功能。
於是UNIX下的軟體比Windows下的軟體更能有機地結合,各自發揮各自的長處,組合成更為強勁的功能。而Windows下的圖形軟體基本上是各自為營,互相不能調用,很不利於各種軟體的相互集成。在這里並不是要和Windows做個什麼比較,所謂「寸有所長,尺有所短」,圖形化工具還是有不如命令行的地方。

1 GDB概述
GDB是GNU開源組織發布的一個強大的UNIX下的程序調試工具。或許,各位比較喜歡那種圖形界面方式的,像VC、BCB等IDE的調試,但如果你是在 UNIX平台下做軟體,你會發現GDB這個調試工具有比VC、BCB的圖形化調試器更強大的功能。所謂「寸有所長,尺有所短」就是這個道理。

一般來說,GDB主要幫忙你完成下面四個方面的功能:

1、啟動你的程序,可以按照你的自定義的要求隨心所欲的運行程序。
2、可讓被調試的程序在你所指定的調置的斷點處停住。(斷點可以是條件表達式)
3、當程序被停住時,可以檢查此時你的程序中所發生的事。
4、動態的改變你程序的執行環境。