|
From: <zw...@ma...> - 2009-06-11 13:42:31
|
Author: zwelch
Date: 2009-06-11 13:42:26 +0200 (Thu, 11 Jun 2009)
New Revision: 2190
Modified:
trunk/src/target/target.c
Log:
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.
Modified: trunk/src/target/target.c
===================================================================
--- trunk/src/target/target.c 2009-06-11 07:08:45 UTC (rev 2189)
+++ trunk/src/target/target.c 2009-06-11 11:42:26 UTC (rev 2190)
@@ -1950,17 +1950,20 @@
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,
|