target: handle command 'target current' when no target is present
authorAntonio Borneo <borneo.antonio@gmail.com>
Fri, 23 Oct 2020 14:45:35 +0000 (16:45 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Wed, 4 Nov 2020 17:38:20 +0000 (17:38 +0000)
Is it possible to run OpenOCD without any target, for example to
only dump the rom-tables of an arm dap, or to perform low level
jtag operations.
But without any target created, the command 'target current'
causes OpenOCD to abruptly exit.

Handle in command 'target current' the case of no targets.

Change-Id: Ide15cb13bec84b88ccc3e7126523c04a6d70e636
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5881
Tested-by: jenkins
src/target/target.c

index 9443f6c8603b3e1f46a81e01b47a247765d402fa..e2e614ffa315bb424ea39d0d5ebb96745874958e 100644 (file)
@@ -5699,7 +5699,9 @@ static int jim_target_current(Jim_Interp *interp, int argc, Jim_Obj *const *argv
        struct command_context *cmd_ctx = current_command_context(interp);
        assert(cmd_ctx != NULL);
 
-       Jim_SetResultString(interp, target_name(get_current_target(cmd_ctx)), -1);
+       struct target *target = get_current_target_or_null(cmd_ctx);
+       if (target)
+               Jim_SetResultString(interp, target_name(target), -1);
        return JIM_OK;
 }