Ответ 1
(gdb) help x
Examine memory: x/FMT ADDRESS.
ADDRESS is an expression for the memory address to examine.
FMT is a repeat count followed by a format letter and a size letter.
Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes).
The specified number of objects of the specified size are printed
according to the format.
Defaults for format and size letters are those previously used.
Default count is 1. Default address is following last thing printed
with this command or "print".
(gdb) x/8b array
0xbffd7670: 0 0 0 0 0 0 0 0
(gdb) x/16b array
0xbffd7670: 0 0 0 0 0 0 0 0
0xbffd7678: 0 0 0 0 0 0 0 0
(gdb) x/128b array
0xbffd7670: 0 0 0 0 0 0 0 0
0xbffd7678: 0 0 0 0 0 0 0 0
0xbffd7680: 0 0 0 0 0 0 0 0
0xbffd7688: 0 0 0 0 0 0 0 0
0xbffd7690: 0 0 0 0 0 0 0 0
0xbffd7698: 0 0 0 0 0 0 0 0
0xbffd76a0: 0 0 0 0 0 0 0 0
0xbffd76a8: 0 0 0 0 0 0 0 0
0xbffd76b0: 0 0 0 0 0 0 0 0
0xbffd76b8: 0 0 0 0 0 0 0 0
0xbffd76c0: 0 0 0 0 0 0 0 0
0xbffd76c8: 0 0 0 0 0 0 0 0
0xbffd76d0: 0 0 0 0 0 0 0 0
0xbffd76d8: 0 0 0 0 0 0 0 0
0xbffd76e0: 0 0 0 0 0 0 0 0
0xbffd76e8: 0 0 0 0 0 0 0 0
(gdb)
Если вы хотите, чтобы символы символов ASCII были напечатаны, используйте x/<size>c
.
(gdb) set logging file ~/gdb_dump.txt
(gdb) set logging on
Copying output to /home/mminich/gdb_dump.txt.
(gdb) x/26c array
0xbfff4b20: 97 'a' 98 'b' 99 'c' 100 'd' 101 'e' 102 'f' 103 'g' 104 'h'
0xbfff4b28: 105 'i' 106 'j' 107 'k' 108 'l' 109 'm' 110 'n' 111 'o' 112 'p'
0xbfff4b30: 113 'q' 114 'r' 115 's' 116 't' 117 'u' 118 'v' 119 'w' 120 'x'
0xbfff4b38: 121 'y' 122 'z'
(gdb) set logging off
Done logging to /home/mminich/gdb_dump.txt.
(gdb)
Кстати, я полностью согласен с комментарием Уильяма Пурселла по вашему вопросу: "Мне гораздо проще определить функции в коде, который выполняет дамп данных, и просто вызвать их из gdb (оберните определения в #ifdef DEBUG)"