com:
display/i $eip
display/x $ebp
display/x $esp
break main

# gdb -x com example1
(gdb) list 1
(gdb) [Enter]
(gdb) disassemble main
#callの次のステップのアドレス確認
(gdb) disassemble func
(gdb) run
#eip/ebp/esp確認
(gdb) si
(gdb) [Enter]
#push %ebp実行後
(gdb) x/5x $esp
#sfp/ret/引数確認
(gdb) si
(gdb) [Enter]
#leave実行後
(gdb) x/4x $esp
#esp/ebpの変化、retアドレス確認
(gdb) si
(gdb) continue
(gdb) quit
# cat example2.c
# ./example2
# cat example3.c
# ./example3
# gdb -x com example3
(gdb) disassemble main
(gdb) print 0x804848a - 0x8048480
#+10の意味
(gdb) disassemble func
(gdb) break *0x804845e
(gdb) run
(gdb) continue
(gdb) x/4x $ebp
(gdb) x/4x buf1
(gdb) x/4x buf2
(gdb) next
#strcpy実行後の状態
(gdb) x/4x buf1
(gdb) x/4x $ebp
(gdb) si
(gdb) [Enter]
(gdb) continue
(gdb) quit