$objdump -d -S -l -shrt dump1.out Change “ef01” to “ef00”
奇技淫巧
進階班Advanced GDB Tricks
奇技淫巧:奇異而眩人耳目の
技能或事物
(from 教育部國語辭典)
SIGSEGV + GDB
C interpreter1. $ gdb `which gdb`
2. (gdb) start
3. Enjoy your world…
• Example:
(gdb) p 1 + 2 + abs(-‐3)(gdb) p strcmp("VIVOTEK", "AXIS")(gdb) x/s getenv(“HOME”)(gdb) p (char*)getenv("HOME")(gdb) p (char)*getenv("HOME")(gdb) p printf("%d\n", 12345678)
Signal HandlerTerminal hang / Reboot PC
You have to close terminal (e.g., PuTTY, iTerm,...)
Conventional solution
GNU Screen / Tmux
nohup
GDB solution
$ gdb [program] [pid]
(gdb) handle SIGHUP nopass
(gdb) continue
(gdb) handle SIGHUPSignal Stop Print Pass to program DescriptionSIGHUP Yes Yes Yes Hangup(gdb) handle SIGHUP nopassSignal Stop Print Pass to program DescriptionSIGHUP Yes Yes No Hangup
Program received signal SIGHUP, Hangup.0x0000003ac7a954e0 in __nanosleep_nocancel () from /lib64/libc.so.6(gdb)Continuing.