I got some the hexdump 0xAAABBCCDDEEFF
The trick is to get these values into memory of a running process. It may be useful to write a tiny helper program for this.
For example, suppose that you have a hex dump of a packet, and the remote server printed that packet out, then crashed. (The usual way to debug this is to make remote server dump core, and then debug that core -- this will allow you to debug many more problems than what is possible to debug using your "logging" approach, but I digress).
So we write a helper program like this (using this answer):
#include <string.h>
#include <sstream>
#include <iostream>
#include "packet.h"   // "complicated" packet structure defined here.
int main(int argc, char *argv[]) {
  struct packet pkt;
  static const int num_ints = ((sizeof(pkt) + sizeof(int) - 1) & ~(sizeof(int) - 1)) / sizeof(int);
  for (int j = 1; j < argc; j++) {
    memset(&pkt, 0, sizeof(pkt));  // start in clean state
    // chop input string into 8-char chunks
    std::string s = argv[j];
    for (int k = 0; k < num_ints && k < (s.size() / 8) + 1 ; k++) {
      std::stringstream ss;
      ss << std::hex << s.substr(8 * k, 8);
      unsigned int x;
      ss >> x;
      ((unsigned int *)&pkt)[k] = x;
    }
    std::cout << std::endl;  // break here.
  }
}
Now compile this program with g++ -g helper.cc -o helper, run it with
gdb -q ./helper AAABBCCDDEEFF....
Set breakpoint on line 24 (the "break here" line), and use print pkt to examine the decoded packet.