This is an automated email from Gerrit.

"Marek Vrbka <marek.vr...@codasip.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7922

-- gerrit

commit cc3ea34731c16da9df6f1b662928acb20b032284
Author: Marek Vrbka <marek.vr...@codasip.com>
Date:   Fri Sep 29 13:14:10 2023 +0200

    breakpoints: Add target logging to breakpoints and watchpoints
    
    This patch adds target logging to breakpoint
    handling code. This makes it easier to
    debug multicore/multithread systems.
    
    Change-Id: I6bea8079a457070a8f63d0ce381a4ece6f5a190a
    Signed-off-by: Marek Vrbka <marek.vr...@codasip.com>

diff --git a/src/target/breakpoints.c b/src/target/breakpoints.c
index 5ce0346bb4..bed17d85c1 100644
--- a/src/target/breakpoints.c
+++ b/src/target/breakpoints.c
@@ -47,7 +47,7 @@ static int breakpoint_add_internal(struct target *target,
                         * breakpoint" ... check all the parameters before
                         * succeeding.
                         */
-                       LOG_ERROR("Duplicate Breakpoint address: " 
TARGET_ADDR_FMT " (BP %" PRIu32 ")",
+                       LOG_TARGET_ERROR(target, "Duplicate Breakpoint address: 
" TARGET_ADDR_FMT " (BP %" PRIu32 ")",
                                address, breakpoint->unique_id);
                        return ERROR_TARGET_DUPLICATE_BREAKPOINT;
                }
@@ -78,16 +78,15 @@ static int breakpoint_add_internal(struct target *target,
                default:
                        reason = "unknown reason";
 fail:
-                       LOG_ERROR("can't add breakpoint: %s", reason);
+                       LOG_TARGET_ERROR(target, "can't add breakpoint: %s", 
reason);
                        free((*breakpoint_p)->orig_instr);
                        free(*breakpoint_p);
                        *breakpoint_p = NULL;
                        return retval;
        }
 
-       LOG_DEBUG("[%d] added %s breakpoint at " TARGET_ADDR_FMT
+       LOG_TARGET_DEBUG(target, "added %s breakpoint at " TARGET_ADDR_FMT
                        " of length 0x%8.8x, (BPID: %" PRIu32 ")",
-               target->coreid,
                breakpoint_type_strings[(*breakpoint_p)->type],
                (*breakpoint_p)->address, (*breakpoint_p)->length,
                (*breakpoint_p)->unique_id);
@@ -129,14 +128,14 @@ static int context_breakpoint_add_internal(struct target 
*target,
        (*breakpoint_p)->unique_id = bpwp_unique_id++;
        retval = target_add_context_breakpoint(target, *breakpoint_p);
        if (retval != ERROR_OK) {
-               LOG_ERROR("could not add breakpoint");
+               LOG_TARGET_ERROR(target, "could not add breakpoint");
                free((*breakpoint_p)->orig_instr);
                free(*breakpoint_p);
                *breakpoint_p = NULL;
                return retval;
        }
 
-       LOG_DEBUG("added %s Context breakpoint at 0x%8.8" PRIx32 " of length 
0x%8.8x, (BPID: %" PRIu32 ")",
+       LOG_TARGET_DEBUG(target, "added %s Context breakpoint at 0x%8.8" PRIx32 
" of length 0x%8.8x, (BPID: %" PRIu32 ")",
                breakpoint_type_strings[(*breakpoint_p)->type],
                (*breakpoint_p)->asid, (*breakpoint_p)->length,
                (*breakpoint_p)->unique_id);
@@ -160,11 +159,11 @@ static int hybrid_breakpoint_add_internal(struct target 
*target,
                         * breakpoint" ... check all the parameters before
                         * succeeding.
                         */
-                       LOG_ERROR("Duplicate Hybrid Breakpoint asid: 0x%08" 
PRIx32 " (BP %" PRIu32 ")",
+                       LOG_TARGET_ERROR(target, "Duplicate Hybrid Breakpoint 
asid: 0x%08" PRIx32 " (BP %" PRIu32 ")",
                                asid, breakpoint->unique_id);
                        return ERROR_TARGET_DUPLICATE_BREAKPOINT;
                } else if ((breakpoint->address == address) && 
(breakpoint->asid == 0)) {
-                       LOG_ERROR("Duplicate Breakpoint IVA: " TARGET_ADDR_FMT 
" (BP %" PRIu32 ")",
+                       LOG_TARGET_ERROR(target, "Duplicate Breakpoint IVA: " 
TARGET_ADDR_FMT " (BP %" PRIu32 ")",
                                address, breakpoint->unique_id);
                        return ERROR_TARGET_DUPLICATE_BREAKPOINT;
 
@@ -185,13 +184,13 @@ static int hybrid_breakpoint_add_internal(struct target 
*target,
 
        retval = target_add_hybrid_breakpoint(target, *breakpoint_p);
        if (retval != ERROR_OK) {
-               LOG_ERROR("could not add breakpoint");
+               LOG_TARGET_ERROR(target, "could not add breakpoint");
                free((*breakpoint_p)->orig_instr);
                free(*breakpoint_p);
                *breakpoint_p = NULL;
                return retval;
        }
-       LOG_DEBUG(
+       LOG_TARGET_DEBUG(target,
                "added %s Hybrid breakpoint at address " TARGET_ADDR_FMT " of 
length 0x%8.8x, (BPID: %" PRIu32 ")",
                breakpoint_type_strings[(*breakpoint_p)->type],
                (*breakpoint_p)->address,
@@ -293,7 +292,7 @@ static int breakpoint_free(struct target *target, struct 
breakpoint *breakpoint_
                return retval;
        }
 
-       LOG_DEBUG("free BPID: %" PRIu32 " --> %d", breakpoint->unique_id, 
retval);
+       LOG_TARGET_DEBUG(target, "free BPID: %" PRIu32 " --> %d", 
breakpoint->unique_id, retval);
        (*breakpoint_p) = breakpoint->next;
        free(breakpoint->orig_instr);
        free(breakpoint);
@@ -395,8 +394,7 @@ int breakpoint_remove_all(struct target *target)
 
 static int breakpoint_clear_target_internal(struct target *target)
 {
-       LOG_DEBUG("Delete all breakpoints for target: %s",
-               target_name(target));
+       LOG_TARGET_DEBUG(target, "Deleting all breakpoints for this target.");
 
        int retval = ERROR_OK;
 
@@ -457,7 +455,7 @@ static int watchpoint_add_internal(struct target *target, 
target_addr_t address,
                                || watchpoint->value != value
                                || watchpoint->mask != mask
                                || watchpoint->rw != rw) {
-                               LOG_ERROR("address " TARGET_ADDR_FMT
+                               LOG_TARGET_ERROR(target, "address " 
TARGET_ADDR_FMT
                                        " already has watchpoint %d",
                                        address, watchpoint->unique_id);
                                return ERROR_FAIL;
@@ -491,7 +489,7 @@ static int watchpoint_add_internal(struct target *target, 
target_addr_t address,
                default:
                        reason = "unrecognized error";
 bye:
-                       LOG_ERROR("can't add %s watchpoint at " TARGET_ADDR_FMT 
", %s",
+                       LOG_TARGET_ERROR(target, "can't add %s watchpoint at " 
TARGET_ADDR_FMT ", %s",
                                watchpoint_rw_strings[(*watchpoint_p)->rw],
                                address, reason);
                        free(*watchpoint_p);
@@ -499,9 +497,8 @@ bye:
                        return retval;
        }
 
-       LOG_DEBUG("[%d] added %s watchpoint at " TARGET_ADDR_FMT
+       LOG_TARGET_DEBUG(target, "added %s watchpoint at " TARGET_ADDR_FMT
                        " of length 0x%8.8" PRIx32 " (WPID: %d)",
-               target->coreid,
                watchpoint_rw_strings[(*watchpoint_p)->rw],
                (*watchpoint_p)->address,
                (*watchpoint_p)->length,
@@ -552,7 +549,7 @@ static int watchpoint_free(struct target *target, struct 
watchpoint *watchpoint_
                return retval;
        }
 
-       LOG_DEBUG("free WPID: %d --> %d", watchpoint->unique_id, retval);
+       LOG_TARGET_DEBUG(target, "free WPID: %d --> %d", watchpoint->unique_id, 
retval);
        (*watchpoint_p) = watchpoint->next;
        free(watchpoint);
 
@@ -617,8 +614,7 @@ int watchpoint_clear_target(struct target *target)
 {
        int retval = ERROR_OK;
 
-       LOG_DEBUG("Delete all watchpoints for target: %s",
-               target_name(target));
+       LOG_TARGET_DEBUG(target, "Deleting all watchpoints for this target.");
        while (target->watchpoints) {
                int status = watchpoint_free(target, target->watchpoints);
                if (status != ERROR_OK)
@@ -641,7 +637,7 @@ int watchpoint_hit(struct target *target, enum 
watchpoint_rw *rw,
        *rw = hit_watchpoint->rw;
        *address = hit_watchpoint->address;
 
-       LOG_DEBUG("Found hit watchpoint at " TARGET_ADDR_FMT " (WPID: %d)",
+       LOG_TARGET_DEBUG(target, "Found hit watchpoint at " TARGET_ADDR_FMT " 
(WPID: %d)",
                hit_watchpoint->address,
                hit_watchpoint->unique_id);
 
diff --git a/src/target/target.c b/src/target/target.c
index 1219743750..bca543135a 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -3967,7 +3967,7 @@ static int handle_bp_command_set(struct 
command_invocation *cmd,
 
        } else if (addr == 0) {
                if (!target->type->add_context_breakpoint) {
-                       LOG_ERROR("Context breakpoint not available");
+                       LOG_TARGET_ERROR(target, "Context breakpoint not 
available");
                        return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
                }
                retval = context_breakpoint_add(target, asid, length, hw);
@@ -3977,7 +3977,7 @@ static int handle_bp_command_set(struct 
command_invocation *cmd,
 
        } else {
                if (!target->type->add_hybrid_breakpoint) {
-                       LOG_ERROR("Hybrid breakpoint not available");
+                       LOG_TARGET_ERROR(target, "Hybrid breakpoint not 
available");
                        return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
                }
                retval = hybrid_breakpoint_add(target, addr, asid, length, hw);
@@ -4113,7 +4113,7 @@ COMMAND_HANDLER(handle_wp_command)
                        type = WPT_ACCESS;
                        break;
                default:
-                       LOG_ERROR("invalid watchpoint mode ('%c')", 
CMD_ARGV[2][0]);
+                       LOG_TARGET_ERROR(target, "invalid watchpoint mode 
('%c')", CMD_ARGV[2][0]);
                        return ERROR_COMMAND_SYNTAX_ERROR;
                }
                /* fall through */
@@ -4129,7 +4129,7 @@ COMMAND_HANDLER(handle_wp_command)
        int retval = watchpoint_add(target, addr, length, type,
                        data_value, data_mask);
        if (retval != ERROR_OK)
-               LOG_ERROR("Failure setting watchpoints");
+               LOG_TARGET_ERROR(target, "Failure setting watchpoints");
 
        return retval;
 }

-- 

Reply via email to