This will compile in debug mode and include symbols

gcc -ggdb cprog.c -o cprog

Load exec in gdb

gdb ./exec

Set breakpoint on main

b main

Show instructions for main function


Show all functions

info functions

Show all variables

This will only work if the program is compiled in debug mode (with symbols)

info variables

List breakpoints

i b

Break on a specific memory address

b *0x8048417

Show register values

i r

Show multiple register values

i r ebp esp

View value for a particular register

String value:

x/s $ebp

Int value:

x/d $ebp

Restart program


Delete breakpoint

del <number>

View multiple lines from $esp

x/30xw $esp 

Step line-by-line