This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/5049

-- gerrit

commit 250d4f09ce63884c57e60a2956e89adf2e16a67e
Author: Antonio Borneo <[email protected]>
Date:   Mon Apr 1 10:34:25 2019 +0200

    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 <[email protected]>

diff --git a/src/target/target.c b/src/target/target.c
index fdbfa68..248a196 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;

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to