This is an automated email from Gerrit.

"Antonio Borneo <[email protected]>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/9139

-- gerrit

commit 48c26383e3e103987a266ec008d4387e85c2639b
Author: Antonio Borneo <[email protected]>
Date:   Mon Sep 22 09:53:43 2025 +0200

    target: cortex_m: add comment for breakpoint of length 3
    
    Add a comment in the breakpoint code to clarify the check for the
    odd breakpoint length of 3 bytes, introduced by [1].
    
    [1]: commit 0a5e03c12aff ("cortex_m.c: Use two byte breakpoint for
         32bit Thumb-2 request").
    
    Change-Id: I024863d10078b5d9062c876aa59ccf70a81bf641
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index 83fcd4c8f3..e8163c2163 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -2041,6 +2041,15 @@ int cortex_m_unset_breakpoint(struct target *target, 
struct breakpoint *breakpoi
 
 int cortex_m_add_breakpoint(struct target *target, struct breakpoint 
*breakpoint)
 {
+       /*
+        * GDB packets Z0 and z0 provide the 'kind' parameter that is 
target-specific
+        * and typically indicates the size in bytes of the breakpoint.
+        * But for 32-bit Thumb mode (Thumb-2) breakpoint, GDB provides 'kind = 
3' to
+        * be used to derive the length information. See:
+        * 
https://sourceware.org/gdb/current/onlinedocs/gdb.html/ARM-Breakpoint-Kinds.html
+        * Since a four byte breakpoint could be unaligned, potentially 
requiring two
+        * memory accesses to set or remove it, always use two bytes breakpoint.
+        */
        if (breakpoint->length == 3) {
                LOG_TARGET_DEBUG(target, "Using a two byte breakpoint for 32bit 
Thumb-2 request");
                breakpoint->length = 2;

-- 

Reply via email to