diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2019-04-01 10:34:25 +0200 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2019-05-14 19:33:13 +0100 |
commit | b3ce5a0ae5453a879a36856b5d8453722ba0f9b5 (patch) | |
tree | 2597d2d1fefab90ee36aa67d46d968b21e29bd29 /src | |
parent | 74cd25a4d39d85caeb275f178c1c93b4ff334810 (diff) |
target: use LOG_USER to print errors in events
Events are supposed to be executed asynchronously and not linked
with any command, so it's incorrect printing out an eventual error
using command_print().
Even in the case of events triggered by the command
<target> invoke-event <event-name>
the eventual error in the event handler is not propagated to the
command, so the command_print() is still not appropriate.
Replace command_print() with LOG_USER() in target_handle_event().
Add further info in the log to identify which event has generated
the error and its associated target.
Before return, clean-up the error message and the stacktrace from
the error already displayed, to avoid propagate them.
Change-Id: I5966aa25e7c81348f4ad4d6e7ce5d4dee44ea4c8
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5049
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src')
-rw-r--r-- | src/target/target.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/target/target.c b/src/target/target.c index 28e67bf7..14b6b0b9 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -4553,7 +4553,12 @@ void target_handle_event(struct target *target, enum target_event e) if (Jim_EvalObj(teap->interp, teap->body) != JIM_OK) { Jim_MakeErrorMessage(teap->interp); - command_print(NULL, "%s\n", Jim_GetString(Jim_GetResult(teap->interp), NULL)); + LOG_USER("Error executing event %s on target %s:\n%s", + Jim_Nvp_value2name_simple(nvp_target_event, e)->name, + target_name(target), + Jim_GetString(Jim_GetResult(teap->interp), NULL)); + /* clean both error code and stacktrace before return */ + Jim_Eval(teap->interp, "error \"\" \"\""); } cmd_ctx->current_target_override = saved_target_override; |