Other Command Lists
- gdb (and ddd) guide
- Useful GDB commands ยท blacksphere/blackmagic Wiki ยท GitHub
- Basic gdb with OpenOCD โ STM32/ARM Cortex-M3 HOWTO
Remote Debugging
target extended-remote <port>
USB
target extended-remote /dev/cu.usbmodemE2C0C4C6
TCP
target extended-remote localhost:3333
arm-none-eabi-gdb -ex "target extended-remote /dev/cu.usbmodemC2D9BBC1"
dump memory
dump binary memory test.bin 0x08000000 0x080FFFFF
Program Movement
load firmware.elfโ Load program to Remote chiprunโ Start programstepโ steps single instructionnextโ steps single instruction skips lines in a subroutinekillโ Kill the program being debugged
Break points
break *main
show information
info localsโ Variables in contextinfo registersโ system registersinfo proc mappingsโ memory mappingsinfo frameโ information about the current stack frameinfo line foo.c:42โ show PC for lineinfo line * $pcโ show line begin/end for the current program counterp &aโ find the memory address of variable โaโp/x variableโPrint variable in HEXp/t variableโ Print Variable in Binary- Hook โ run commands when break hit
<pre class="wp-block-preformatted">define hook-stop<br></br> info registers l curr registers<br></br> x/24wx $esp ; stack<br></br> x/2i $eip ; next 2 instruction<br></br> end<br></br>
TUI
TUI Key Bindings
The TUI installs several key bindings in the readline keymaps (see Command Line Editing). The following key bindings are installed for both TUI mode and the gdb standard mode.
C-x C-a,C-x aorC-x AEnter or leave the TUI mode. When leaving the TUI mode, the curses window management stops and gdb operates using its standard mode, writing on the terminal directly. When reentering the TUI mode, control is given back to the curses windows. The screen is then refreshed.C-x 1Use a TUI layout with only one window. The layout will either be โsourceโ or โassemblyโ. When the TUI mode is not active, it will switch to the TUI mode.C-x 2Use a TUI layout with at least two windows. When the current layout already has two windows, the next layout with two windows is used. When a new layout is chosen, one window will always be common to the previous layout and the new one.C-x oChange the active window. The TUI associates several key bindings (like scrolling and arrow keys) with the active window. This command gives the focus to the next TUI window.C-x sSwitch in and out of the TUI SingleKey mode that binds single keys to gdb commands (see TUI Single Key Mode).- The following key bindings only work in the TUI mode:
<PgUp>Scroll the active window one page up.<PgDn>Scroll the active window one page down.<Up>Scroll the active window one line up.<Down>Scroll the active window one line down.<Left>Scroll the active window one column left.<Right>Scroll the active window one column right.C-LRefresh the screen.
Because the arrow keys scroll the active window in the TUI mode, they are not available for their normal use by readline unless the command window has the focus. When another window is active, you must use other readline key bindings such as C-p, C-n, C-b and C-f to control the command window.
Layout options
info winโ List and give the size of all displayed windows.layout nextโ Display the next layout.layout prevโ Display the previous layout.layout srcโ Display the source window only.layout asmโ Display the assembly window only.layout splitโ Display the source and assembly window.layout regs-Display the register window together with the source or assembly window.tui reg generalโ Show the general registers in the register window.startโ auto breakpoint at main and continue
TUI Single Key Mode
The TUI also provides a SingleKey mode, which binds several frequently used gdb commands to single keys. Type C-x s to switch into this mode, where the following key bindings are used:
ccontinueddownffinishnnextqexit the SingleKey mode.rrunsstepuupvinfo localswwhere
Other keys temporarily switch to the gdb command prompt. The key that was pressed is inserted in the editing buffer so that it is possible to type most gdb commands without interaction with the TUI SingleKey mode. Once the command is entered the TUI SingleKey mode is restored. The only way to permanently leave this mode is by typing q or C-x s.
misc
-
set disassembly-flavor intel -
disassemble main -
x/wx $esp< show stack pointer -
x/24wx $espstack -
x/2i $eipnext two commands -
$ebpbase pointer variable -
$eipinstruction pointer variable -
$espStack pointer variable -
tbreakโ temporary breakpoint -
rbreakโ reg-ex breakpoint -
break xxx if yyyโ conditionally break at xxx if conditionyyy holds -
commandsโ list of commands to be executed when a breakpoint is hit -
silentโspecial command to suppress output when a breakpoint is hit -
save breakpointsโ save a list of breakpoints to a script -
save historyโ save the history of executed gdb commands -
callโ call a function in the inferior -
watch -lโ watchpoint based on the address (location) -
rwatchโ read watchpoint -
thread apply all btโ backtrace for every threaddprintfโ dynamicprintf