gdb is magic once you get the hang of it, I'd definitely recommend spending some time getting comfortable with it.
(gdb) help si
Step one instruction exactly.
(gdb) help ni
Step one instruction, but proceed through subroutine calls.
(gdb) help info registers
List of integer registers and their contents, for selected stack frame.
Register name as argument means describe only that register.
(gdb) layout reg # to enable view of registers in split screen
Also, you can use register names in expressions. e.g. p $r11All of this is applicable when debugging a C program as well.