* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
- * Copyright (C) 2007,2008 Øyvind Harboe *
+ * Copyright (C) 2007,2008 Øyvind Harboe *
* oyvind.harboe@zylin.com *
* *
* Copyright (C) 2008, Duane Ellis *
{ .name = NULL , .value = -1 },
};
+const char *
+target_state_name( target_t *t )
+{
+ const char *cp;
+ cp = Jim_Nvp_value2name_simple(nvp_target_state, t->state)->name;
+ if( !cp ){
+ LOG_ERROR("Invalid target state: %d", (int)(t->state));
+ cp = "(*BUG*unknown*BUG*)";
+ }
+ return cp;
+}
+
static int max_target_number(void)
{
target_t *t;
return ERROR_OK;
}
- LOG_USER("target state: %s",
- Jim_Nvp_value2name_simple(nvp_target_state,target->state)->name);
+ LOG_USER("target state: %s", target_state_name( target ));
if (target->state != TARGET_HALTED)
return ERROR_OK;
char marker = ' ';
if (target->tap->enabled)
- state = Jim_Nvp_value2name_simple(nvp_target_state,
- target->state)->name;
+ state = target_state_name( target );
else
state = "tap-disabled";
* with one argument addr = args[0],
* handle breakpoints, debugging */
uint32_t addr = 0;
+ int current_pc = 1;
if (argc == 1)
{
int retval = parse_u32(args[0], &addr);
if (ERROR_OK != retval)
return retval;
+ current_pc = 0;
}
target_t *target = get_current_target(cmd_ctx);
- return target->type->step(target, 0, addr, 1);
+
+ return target->type->step(target, current_pc, addr, 1);
}
static void handle_md_output(struct command_context_s *cmd_ctx,
while (teap) {
if (teap->event == e) {
done = 1;
- LOG_DEBUG("target: (%d) %s (%s) event: %d (%s) action: %s\n",
+ LOG_DEBUG("target: (%d) %s (%s) event: %d (%s) action: %s",
target->target_number,
target->cmd_name,
target_get_name(target),
return JIM_ERR;
}
Jim_SetResultString(goi.interp,
- Jim_Nvp_value2name_simple(nvp_target_state,target->state)->name,-1);
+ target_state_name( target ),
+ -1);
return JIM_OK;
case TS_CMD_INVOKE_EVENT:
if (goi.argc != 1) {