# HG changeset patch # User Tristan Gingold # Date 1203829710 -3600 # Node ID 9405d0ff17ab4e1934a9f17e956f78ad8b4ac5c0 # Parent 7c93b5ba807c9c1a4692813c6881f44ca625eb52 Add a dump command. Signed-off-by: Tristan Gingold diff -r 7c93b5ba807c -r 9405d0ff17ab tools/debugger/xenitp/xenitp.c --- a/tools/debugger/xenitp/xenitp.c Mon Feb 18 07:26:23 2008 +0100 +++ b/tools/debugger/xenitp/xenitp.c Sun Feb 24 06:08:30 2008 +0100 @@ -1081,6 +1081,36 @@ cmd_disassemble (char *args) } static enum cmd_status +cmd_dump (char *args) +{ + static unsigned long addr; + unsigned long end_addr = addr + 256; + unsigned long p; + + if (*args != 0) { + if (parse_expr (&args, &addr, 0) < 0) + return CMD_ERROR; + if (*args != 0) { + if (parse_expr (&args, &end_addr, 0) < 0) + return CMD_ERROR; + } + else + end_addr = addr + 256; + } + for (p = addr; p < end_addr; p += 16) { + int i; + printf ("%016lx:", p); + for (i = 0; i < 16; i++) { + unsigned char *m = target_map_memory (p + i); + printf ("%c%02x", i == 8 ? '-' : ' ', *m); + } + printf ("\n"); + } + addr = end_addr; + return CMD_REPEAT; +} + +static enum cmd_status cmd_break (char *args) { unsigned long addr; @@ -1461,6 +1491,7 @@ const struct command_desc commands[] = { { "quit", "quit debugger", cmd_quit }, { "echo", "display parameters", cmd_echo }, { "disassemble", "disassemble memory", cmd_disassemble }, + { "dump", "dump memory", cmd_dump }, { "break", "set a break point", cmd_break }, { "watch", "set a watch point", cmd_watch }, { "cb", "resume until branch", cmd_cb },