Lots of commands in GDB's protocol use hex-encoded data. A $
starts a packet, and all packets end with #
followed by a one-byte, hex-encoded checksum.
Let's look at the protocol for the request:
remote get /proc/self/cmdline ./cmdline
Which should fetch /proc/self/cmdline
and dump it to ./cmdline
. It does!
$ phd cmdline