David Brownell [david-b@pacbell.net]:
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). git-svn-id: svn://svn.berlios.de/openocd/trunk@2594 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
1b092a27f0
commit
69dd81dcf8
|
@ -1741,17 +1741,28 @@ static int handle_reg_command(struct command_context_s *cmd_ctx, char *cmd, char
|
||||||
while (cache)
|
while (cache)
|
||||||
{
|
{
|
||||||
int i;
|
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);
|
/* only print cached values if they are valid */
|
||||||
command_print(cmd_ctx, "(%i) %s (/%i): 0x%s (dirty: %i, valid: %i)",
|
if (reg->valid) {
|
||||||
count++,
|
value = buf_to_str(reg->value,
|
||||||
cache->reg_list[i].name,
|
reg->size, 16);
|
||||||
(int)(cache->reg_list[i].size),
|
command_print(cmd_ctx,
|
||||||
value,
|
"(%i) %s (/%u): 0x%s%s",
|
||||||
cache->reg_list[i].dirty,
|
count, reg->name,
|
||||||
cache->reg_list[i].valid);
|
reg->size, value,
|
||||||
free(value);
|
reg->dirty
|
||||||
|
? " (dirty)"
|
||||||
|
: "");
|
||||||
|
free(value);
|
||||||
|
} else {
|
||||||
|
command_print(cmd_ctx, "(%i) %s (/%u)",
|
||||||
|
count, reg->name,
|
||||||
|
reg->size) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
cache = cache->next;
|
cache = cache->next;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue