gdb的x命令可以指定显示的数据类型,但是不能像xxd、hexdump这类程序同时显示内核和字符串。
通过自定义命令可实现此效果。
(gdb) define xxd
dump binary memory dump.bin
arg0+$arg1
shell xxd dump.bin
end
(gdb) xxd &j 10
00000000: cffa edfe 0700 0001 0300 0000 0200 0000 ................
00000010: 1000 0000 5805 0000 8500 2000 0000 0000 ....X..... .....
00000020: 1900 0000 4800 0000 5f5f 5041 4745 5a45 ....H...__PAGEZE
00000030: 524f 0000 0000 0000 0000 0000 0000 0000 RO..............
00000040: 0000 0000 0100 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000060: 0000 0000 0000 0000 1900 0000 d801 0000 ................
00000070: 5f5f 5445 5854 0000 0000 0000 0000 0000 __TEXT..........
00000080: 0000 0000 0100 0000 0040 0000 0000 0000 .........@......
00000090: 0000 0000 0000 0000 0040 0000 0000 0000 .........@......
000000a0: 0500 0000 0500 0000 0500 0000 0000 0000 ................
000000b0: 5f5f 7465 7874 0000 0000 0000 0000 0000 __text..........
000000c0: 5f5f 5445 5854 0000 0000 0000 0000 0000 __TEXT..........
000000d0: 503f 0000 0100 0000 3300 0000 0000 0000 P?......3.......
注意此方式会在本地创建dump.bin文件,改文件会占用存储空间。