- fixed endianess bug in printf
[lugburz] / src / debug.c
1 #include <stdio.h>
2 #include <ctype.h>
3 #include "debug.h"
4
5 void memdump(void *ptr, int len)
6 {
7         int i;
8         unsigned char *p = ptr;
9
10         while(len > 0) {
11                 printf("%06lx ", (unsigned long)p);
12                 for(i=0; i<16; i++) {
13                         if(len - i <= 0) {
14                                 printf("   ");
15                         } else {
16                                 printf(" %02x", (unsigned int)p[i]);
17                         }
18                         if((i & 7) == 7) putchar(' ');
19                 }
20                 printf(" |");
21                 for(i=0; i<16; i++) {
22                         if(len - i <= 0) {
23                                 putchar(' ');
24                         } else {
25                                 putchar(isprint(p[i]) ? p[i] : '.');
26                         }
27                 }
28                 printf("|\n");
29                 len -= 16;
30                 p += 16;
31         }
32 }