ARM11: remove register "history" debug stuff
This was a private mechanism to snapshot registers before leaving debug state, and then on reentry to optionally display what changed. It was coupled to the private register cache, which won't be sticking around in that form for much longer. Remove (instead of teaching it how to handle *all* the registers). (The idea is interesting, but we ought to be able to implement this in a generic way. Ideally through Tcl scripts that can automatically be invoked following debug entry...) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>__archive__
parent
caf827ee81
commit
6ff33a4ee8
|
@ -155,9 +155,6 @@ static int arm11_build_reg_cache(struct target *target);
|
||||||
static int arm11_set_reg(struct reg *reg, uint8_t *buf);
|
static int arm11_set_reg(struct reg *reg, uint8_t *buf);
|
||||||
static int arm11_get_reg(struct reg *reg);
|
static int arm11_get_reg(struct reg *reg);
|
||||||
|
|
||||||
static void arm11_record_register_history(struct arm11_common * arm11);
|
|
||||||
static void arm11_dump_reg_changes(struct arm11_common * arm11);
|
|
||||||
|
|
||||||
|
|
||||||
/** Check and if necessary take control of the system
|
/** Check and if necessary take control of the system
|
||||||
*
|
*
|
||||||
|
@ -380,41 +377,9 @@ static int arm11_on_enter_debug_state(struct arm11_common *arm11)
|
||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
arm11_dump_reg_changes(arm11);
|
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void arm11_dump_reg_changes(struct arm11_common * arm11)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (!(debug_level >= LOG_LVL_DEBUG))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < ARM11_REGCACHE_COUNT; i++)
|
|
||||||
{
|
|
||||||
if (!arm11->reg_list[i].valid)
|
|
||||||
{
|
|
||||||
if (arm11->reg_history[i].valid)
|
|
||||||
LOG_DEBUG("%8s INVALID (%08" PRIx32 ")", arm11_reg_defs[i].name, arm11->reg_history[i].value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (arm11->reg_history[i].valid)
|
|
||||||
{
|
|
||||||
if (arm11->reg_history[i].value != arm11->reg_values[i])
|
|
||||||
LOG_DEBUG("%8s %08" PRIx32 " (%08" PRIx32 ")", arm11_reg_defs[i].name, arm11->reg_values[i], arm11->reg_history[i].value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LOG_DEBUG("%8s %08" PRIx32 " (INVALID)", arm11_reg_defs[i].name, arm11->reg_values[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Restore processor state
|
/** Restore processor state
|
||||||
*
|
*
|
||||||
* This is called in preparation for the RESTART function.
|
* This is called in preparation for the RESTART function.
|
||||||
|
@ -532,24 +497,9 @@ static int arm11_leave_debug_state(struct arm11_common *arm11)
|
||||||
arm11_add_dr_scan_vc(ARRAY_SIZE(chain5_fields), chain5_fields, TAP_DRPAUSE);
|
arm11_add_dr_scan_vc(ARRAY_SIZE(chain5_fields), chain5_fields, TAP_DRPAUSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
arm11_record_register_history(arm11);
|
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void arm11_record_register_history(struct arm11_common *arm11)
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < ARM11_REGCACHE_COUNT; i++)
|
|
||||||
{
|
|
||||||
arm11->reg_history[i].value = arm11->reg_values[i];
|
|
||||||
arm11->reg_history[i].valid = arm11->reg_list[i].valid;
|
|
||||||
|
|
||||||
arm11->reg_list[i].valid = 0;
|
|
||||||
arm11->reg_list[i].dirty = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* poll current target status */
|
/* poll current target status */
|
||||||
static int arm11_poll(struct target *target)
|
static int arm11_poll(struct target *target)
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,12 +41,6 @@
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
struct arm11_register_history
|
|
||||||
{
|
|
||||||
uint32_t value;
|
|
||||||
uint8_t valid;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum arm11_debug_version
|
enum arm11_debug_version
|
||||||
{
|
{
|
||||||
ARM11_DEBUG_V6 = 0x01,
|
ARM11_DEBUG_V6 = 0x01,
|
||||||
|
@ -84,9 +78,6 @@ struct arm11_common
|
||||||
|
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
struct arm11_register_history
|
|
||||||
reg_history[ARM11_REGCACHE_COUNT]; /**< register state before last resume */
|
|
||||||
|
|
||||||
size_t free_brps; /**< keep track of breakpoints allocated by arm11_add_breakpoint() */
|
size_t free_brps; /**< keep track of breakpoints allocated by arm11_add_breakpoint() */
|
||||||
size_t free_wrps; /**< keep track of breakpoints allocated by arm11_add_watchpoint() */
|
size_t free_wrps; /**< keep track of breakpoints allocated by arm11_add_watchpoint() */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue