Using GDB
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.
Breakpoints
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: Delete all breakpoints.
Execution
si n: Step forward n assembly instruction, entering into function calls. ni n: Step forward n assembly instruction, skipping over function calls. continue: Resume execution
Examining data
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/8xwADDRESSwill print 8 four-byte words in hexadecimal format. Note thatADDRESS'' can be written as a formula, e.g. $esp + 4. Tryhelp x''' for more information. info registers: Print the values in the registers. info frame: Print information about the current stack frame.
Examining code
disas:Disassemble the current function. disas fn: Disassemble function fn. print /x $eip:Print the program counter in hex
Other useful commands
quit run kill help