summaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-11 11:42:26 +0000
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-06-11 11:42:26 +0000
commit78cf92166ad4ab67e48e5dab7307bb1cf5a345b4 (patch)
tree045e72698f643938a4fecf8c98df001246908643 /src/target
parent4c31d5d17962a330f489e6698ca1f53648b37f44 (diff)
downloadopenocd+libswd-78cf92166ad4ab67e48e5dab7307bb1cf5a345b4.tar.gz
openocd+libswd-78cf92166ad4ab67e48e5dab7307bb1cf5a345b4.tar.bz2
openocd+libswd-78cf92166ad4ab67e48e5dab7307bb1cf5a345b4.tar.xz
openocd+libswd-78cf92166ad4ab67e48e5dab7307bb1cf5a345b4.zip
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
Diffstat (limited to 'src/target')
-rw-r--r--src/target/target.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/target/target.c b/src/target/target.c
index a5447aa6..6d4a93bc 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -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,