Simplify and fix handle_step_command:

- Bug fix: return syntax error when more than one argument is given.
- Eliminate redundant calls to step callback with addr temp variable.
- Place variables at location of first use.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2190 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
zwelch 2009-06-11 11:42:26 +00:00
parent 4c31d5d179
commit 78cf92166a
1 changed files with 9 additions and 6 deletions

View File

@ -1950,17 +1950,20 @@ static int handle_resume_command(struct command_context_s *cmd_ctx, char *cmd, c
static int handle_step_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
target_t *target = get_current_target(cmd_ctx);
if (argc > 1)
return ERROR_COMMAND_SYNTAX_ERROR;
LOG_DEBUG("-");
if (argc == 0)
return target->type->step(target, 1, 0, 1); /* current pc, addr = 0, handle breakpoints */
/* with no args, step from current pc, addr = 0,
* with one argument addr = args[0],
* handle breakpoints, debugging */
u32 addr = 0;
if (argc == 1)
return target->type->step(target, 0, strtoul(args[0], NULL, 0), 1); /* addr = args[0], handle breakpoints */
addr = strtoul(args[0], NULL, 0);
return ERROR_OK;
target_t *target = get_current_target(cmd_ctx);
return target->type->step(target, 0, addr, 1);
}
static void handle_md_output(struct command_context_s *cmd_ctx,