GDB コマンド ファイルの解釈が最初のエラーで停止しないようにする方法はないと思いますが、Python スクリプトを使用して必要なことを行うことができます。
これをinspect-all-formats.pyに保存します。
def examine_all(v):
gdb.write('Value:\n%s\n' % v)
try:
v0 = int(v)
except ValueError:
pass
else:
gdb.write('Hex:\n0x%x\n'
'Decimal:\n%d\n'
% (v0, v0))
try:
c = chr(v)
except ValueError:
pass
else:
gdb.write('Character:\n'
'%r\n' % (c,))
class ExamineAll(gdb.Command):
def __init__(self):
super(ExamineAll, self).__init__('examine-all', gdb.COMMAND_DATA, gdb.COMPLETE_SYMBOL)
def invoke(self, args, from_tty):
for i in gdb.string_to_argv(args):
examine_all(gdb.parse_and_eval(i))
ExamineAll()
次に実行します。
$ gdb -q -x examine-all-formats.py
(gdb) file /bin/true
Reading symbols from /usr/bin/true...Reading symbols from /usr/lib/debug/usr/bin/true.debug...done.
done.
(gdb) start
Temporary breakpoint 1 at 0x4014c0: file true.c, line 59.
Starting program: /usr/bin/true
(gdb) examine-all argc
Value:
1
Hex:
0x1
Decimal:
1
Character:
'\x01'
(gdb) examine-all $eax
Value:
1532708112
Hex:
0x5b5b4510
Decimal:
1532708112