關於 gdb 除錯工具,主要是講解它的字元介面的使用,也就是使用命令除錯程式。gdb 中除錯的命令非常的多,具體可以通過 help 命令檢視。
檢視命令的種類
檢視各個種類的命令可以進入到 gdb 的命令列模式中,使用 help 命令檢視,使用方式:
(gdb) help
不需要新增任何的引數,例如:
(gdb) help
list of classes of commands:
aliases -- aliases of other commands
breakpoints -- ****** program stop at certain points
data -- examining data
files -- specifying and examining files
internals -- maintenance commands
obscure -- obscure features
running -- running the program
stack -- examining the stack
status -- status inquiries
support -- support facilities
tracepoints -- tracing of program execution without stopping the program
user-defined -- user-defined commands
檢視具體某個型別中的命令
使用 help 命令,向我們展示了命令總體被劃分成了12種,其中每一種又會包含許多的命令,檢視各個種類種的命令使用方法:
(gdb) help
其中 表示 help 命令顯示的 gdb 中的命令的種類,例如:
(gdb) help breakpoints
****** program stop at certain points.
list of commands:
awatch -- set a watchpoint for an expression
break -- set breakpoint at specified location
break-range -- set a breakpoint for an address range
catch -- set catchpoints to catch events
catch assert -- catch failed ada assertions
catch catch -- catch an exception
列舉的只是 breakpoints 這個種類中得一小部分,關於 breakpoints 相關的命令非常多。
命令的具體使用方式
如果我們想知道具體某條命令的使用方法,仍然可以使用 help 命令,使用方法如下:
(gdb) help
表示的是具體的一條命令,例如:
(gdb) help break
set breakpoint at specified location.
break [probe_modifier] [location] [thread threadnum] [if condition]
help 會顯示出這條命令的含義以及使用方式。
總結:help 單獨使用是檢視命令的種類。
help 新增命令的種類表示使用這條命令檢視各個種類中具體命令選項。
help 新增具體的一條命令表示檢視命令的使用方式。
gdb檢視記憶體
格式 x nfu 說明 x 是 examine 的縮寫 n表示要顯示的記憶體單元的個數 f表示顯示方式,可取如下值 x 按十六進製制格式顯示變數。d 按十進位制格式顯示變數。u 按十進位制格式顯示無符號整型。o 按八進位制格式顯示變數。t 按二進位制格式顯示變數。a 按十六進製制格式顯示變數。i 指...
gdb 檢視記憶體
曾經被電面到乙個題目,如何判斷乙個系統是大端還是小端,方法其實很簡單 int main 在linux 的執行結果 gcc test.c a.out echo 120120 即 0x78,證明低位放在了低位址,所以是小端系統 little endian 這樣說可能不夠直觀,而且記憶體中怎麼分布本來就比...
GDB教程 檢視記憶體)
先看 n f u是可選的引數,表示乙個記憶體位址 1 n 是乙個正整數,表示顯示記憶體的長度,也就是說從當前位址向後顯示幾個位址的內容 2 f 表示顯示的格式 3 u 表示將多少個位元組作為乙個值取出來,如果不指定的話,gdb預設是4個bytes,如果不指定的話,預設是4個bytes。當我們指定了位...