diff --git a/include/util.h b/include/util.h index 2a58f8b18..966ef1949 100644 --- a/include/util.h +++ b/include/util.h @@ -154,6 +154,8 @@ int reopen_fd_as(int new_fd, int old_fd); int parse_maps(pid_t pid, struct list_head *vma_list); int close_safe(int *fd); +void hex_dump(void *addr, unsigned long len); + DIR *opendir_proc(char *fmt, ...); FILE *fopen_proc(char *fmt, char *mode, ...); int open_fmt(char *fmt, int mode, ...); diff --git a/util.c b/util.c index 592bac122..c6b8bf169 100644 --- a/util.c +++ b/util.c @@ -130,6 +130,20 @@ err: return -2; } +void hex_dump(void *addr, unsigned long len) +{ + unsigned char *p = addr; + unsigned long i; + + len = (len + 8) & ~7; + + for (i = 0; i < len; i += 8) { + printk("%08lx: %02x %02x %02x %02x %02x %02x %02x %02x\n", + p, p[i+0], p[i+1], p[i+2], p[i+3], + p[i+4], p[i+5], p[i+6], p[i+7]); + } +} + void printk_registers(user_regs_struct_t *regs) { printk("ip : %16lx cs : %16lx ds : %16lx\n"