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