代码如下:
#define u1 unsigned char
void debug(void* ptr, size_t size, int column = 16)
{
if (column <= 0) return;
u1* beg = (u1*)ptr;
u1* end = (u1*)ptr + size;
int cnt = 0;
int linenumber = 1;
printf(" \t");
for (u1 i = 0; i < column; ++i)
printf("%02x ", i);
printf("\n");
for (u1* p = beg; p < end; ++p)
{
if (cnt == 0)
printf("\n%04x\t", linenumber++);
printf("%02x ", *p);
++cnt;
if (cnt == column)
{
printf(" ");
u1* bufp = p - (cnt - 1);
while (bufp <= p)
{
printf("%c ", *bufp <= '!' ? '.' : *bufp);
++bufp;
}
cnt = 0;
}
}
printf("\n\n");
}
效果:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
0001 53 74 5f 41 73 73 65 6d 62 6c 79 00 00 00 00 00 S t _ A s s e m b l y . . . . .
0002 53 74 5f 44 65 63 6c 61 72 61 74 69 6f 6e 00 00 S t _ D e c l a r a t i o n . .
0003 00 00 00 00 00 00 00 00 6b 61 70 71 00 00 00 00 . . . . . . . . k a p q . . . .
0004 53 74 5f 4d 61 6e 69 66 65 73 74 00 00 00 00 00 S t _ M a n i f e s t . . . . .
0005 04 00 00 00 00 00 00 00 02 00 00 01 00 00 00 00 . . . . . . . . . . . . . . . .
0006 00 00 00 00 00 00 00 00 53 74 5f 43 6f 6e 73 74 . . . . . . . . S t _ C o n s t
0007 61 6e 74 70 6f 6f 6c 00 0e 00 00 00 00 00 00 00 a n t p o o l . . . . . . . . .
0008 0c 00 00 00 00 00 00 00 d0 04 ae dd 6c 02 00 00 . . . . . . . . D . ? Y l . . .
0009 53 74 5f 43 6c 61 73 73 43 6f 6c 6c 65 63 74 69 S t _ C l a s s C o l l e c t i
000a 6f 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 o n . . . . . . . . . . . . . .
000b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 . . . . . . . . . . . . . . . .
000c 53 74 5f 43 6c 61 73 73 43 6f 6c 6c 65 63 74 69 S t _ C l a s s C o l l e c t i
000d 6f 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 o n . . . . . . . . . . . . . .
000e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 . . . . . . . . . . . . . . . .
000f 53 74 5f 49 6e 74 65 72 66 61 63 65 43 6f 6c 6c S t _ I n t e r f a c e C o l l
0010 65 63 74 69 6f 6e 00 00 00 00 00 00 00 00 00 00 e c t i o n . . . . . . . . . .
0011 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 . . . . . . . . . . . . . . . .
0012 53 74 5f 45 6e 75 6d 43 6f 6c 6c 65 63 74 69 6f S t _ E n u m C o l l e c t i o
0013 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 n . . . . . . . . . . . . . . .
0014 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 . . . . . . . . . . . . . . . .