From: ntfreak at B. <nt...@ma...> - 2009-08-18 21:55:03
|
Author: ntfreak Date: 2009-08-18 21:55:01 +0200 (Tue, 18 Aug 2009) New Revision: 2594 Modified: trunk/src/target/target.c Log: David Brownell [da...@pa...]: Simplify dumping of register lists by only printing cached values if they are marked as valid. Most of the time, they are invalid; so printing *any* value is just misleading. Note that for ARM7 and ARM9 most EmbeddedICE registers (except for debug status) could be cached most of the time; and their register cache isn't maintained properly (many accesses seem to bypass that cache code). Modified: trunk/src/target/target.c =================================================================== --- trunk/src/target/target.c 2009-08-18 17:57:19 UTC (rev 2593) +++ trunk/src/target/target.c 2009-08-18 19:55:01 UTC (rev 2594) @@ -1741,17 +1741,28 @@ while (cache) { int i; - for (i = 0; i < cache->num_regs; i++) + + for (i = 0, reg = cache->reg_list; + i < cache->num_regs; + i++, reg++, count++) { - value = buf_to_str(cache->reg_list[i].value, cache->reg_list[i].size, 16); - command_print(cmd_ctx, "(%i) %s (/%i): 0x%s (dirty: %i, valid: %i)", - count++, - cache->reg_list[i].name, - (int)(cache->reg_list[i].size), - value, - cache->reg_list[i].dirty, - cache->reg_list[i].valid); - free(value); + /* only print cached values if they are valid */ + if (reg->valid) { + value = buf_to_str(reg->value, + reg->size, 16); + command_print(cmd_ctx, + "(%i) %s (/%u): 0x%s%s", + count, reg->name, + reg->size, value, + reg->dirty + ? " (dirty)" + : ""); + free(value); + } else { + command_print(cmd_ctx, "(%i) %s (/%u)", + count, reg->name, + reg->size) ; + } } cache = cache->next; } |