Systems Programming and Machine Organization
Here are some useful GDB commands. For more information on these commands try typing help command into GDB. To find out about other potential useful commands, try typing help into GDB.
- break fn
- Set a breakpoint at entry to function fn.
- break *ADDRESS
- Set a break point at a line of assembly.
- delete n
- Delete breakpoint n.
- Delete all breakpoints.
- si n
- Step forward n assembly instruction, entering into function calls.
- ni n
- Step forward n assembly instruction, skipping over function calls.
- Resume execution
- print $eax
- Print contents of register %eax in decimal.
- print /x $eax
- Print contents of register %eax in hex.
- print /t $eax
- Print contents of register %eax in binary.
- print /x ($eax + 8)
- Print contents of memory address %eax + 8 in hex.
- print *(int *) (($eax + 8))
- Print contents of memory address %eax + 8 as an integer
- x ADDRESS
- Print the value at a memory address. x/d ADDRESS will print the value as an integer; x/i ADDRESS as an instruction; x/s ADDRESS as a string. x/8xw ADDRESS will print 8 four-byte words in hexadecimal format. Note that ADDRESS can be written as a formula, e.g. $esp + 4. Try help x for more information.
- info registers
- Print the values in the registers.
- info frame
- Print information about the current stack frame.
- Disassemble the current function.
- disas fn
- Disassemble function fn.
- print /x $eip
- Print the program counter in hex
Other useful commands