IP Packet dump and related utilities

IP packet dump

typedef std::basic_string<uint8_t> Packet; 

void hexdump(const Packet& pkt)
{
unsigned j=0;

for(Packet::const_iterator i=pkt.begin(); i != pkt.end(); ++i)
{
printf("%02x ", *i);
++j;
if(j==8)
{
printf(" ");
}
else if(j==16)
{
j=0;
printf("\n");
}
}
printf("\n");
}

///////////////Alternate///////////////
void hexdump(buf, size)
{
unsigned i;
unsigned j=0;
for (i=0; i< size; i++) {
printf("%02x ", data_pkt[i]);
j++;
if (j==8) printf(" ");
else if (j==16) {
j=0;
printf("\n");
}
}
printf("\n");
}

Back trace dump

# include < execinfo.h >
backtrace_print (void)
{
void *trace[128];
int trace_size;
char **strings;
unsigned i;
trace_size = backtrace (trace, 128);

strings = backtrace_symbols (trace, trace_size);

if (strings)

{

/* Start from 1, we don't want it to print this function */

for (i = 1; i < trace_size; ++i) {

printf (" %s", strings[i]);
}
}

Leave a comment