Let's say it clear:
gdb lacks an acceptable hexadecimal view for memory blocks. Commands like
x/32c get near, but it shows a confusing, misaligned mix of ASCII characters and octal garbage. I wish it was something like the
x command in
BUT: you can get that (or at least something very similar) by defining a new command using an external call to the
hd external tool, that is probably already installed on your system.
The magic is done by adding the following snippet to your
~/.gdbinit config file:
define hd dump binary memory dump.bin $arg0 ((void *)$arg0)+128 shell hexdump -C dump.bin shell rm dump.bin end
Now you have a new
hd command that accepts as its unique argument a pointer to your data and shows 128 bytes of pretty hexadecimal dump.
2023-08-20 Update: rewritten to make it compatible with OpenBSD, that doesn't have the
hd program and which
gdb lacks the
eval command (or has it disabled, I don't know nor care).