This is an automated email from Gerrit.

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

-- gerrit

commit 2230addfc84a2e0030d578242c11ca151b5ec80b
Author: Alamy Liu <[email protected]>
Date:   Fri Oct 9 11:56:05 2015 -0700

    target: Display register in the same way
    
    Reason:
    The way it displays ALL registers and SINGLE register are differnet
        > reg X5 0x4321
        X5 (/64): 0x0000000000004321
        > reg X5
        X5 (/64): 0x0000000000004321
        > reg
        ===== ARMv8 registers
        ( 0)   X0 (/64): 0x00000009FFC3D018 (dirty)
        ( 1)   X1 (/64): 0x0000000000000000
        ( 2)   X2 (/64): 0x00000009FFF64A8C
        ( 3)   X3 (/64): 0x000000000000004C
        ( 4)   X4 (/64): 0x0000000000000000
        ( 5)   X5 (/64): 0x0000000000004321 (dirty)
    
    Solution:
    Create A function to display register, so everything would be consistent.
        > reg X5 0x4321
          X5 (/64): 0x0000000000004321 (dirty)
        > reg 5
          X5 (/64): 0x0000000000004321 (dirty)
        > reg
        ===== ARMv8 registers
        ( 0)   X0 (/64): 0x0000000040000309 (dirty)
        ( 1)   X1 (/64): 0x0000000000000000
        ( 2)   X2 (/64): 0x00000009FFF64A8C
        ( 3)   X3 (/64): 0x000000000000004C
        ( 4)   X4 (/64): 0x0000000000000000
        ( 5)   X5 (/64): 0x0000000000004321 (dirty)
    
    Change-Id: Ib0d731e531e4d8fd5107a8e24b109fe9b4177298
    Signed-off-by: Alamy Liu <[email protected]>

diff --git a/src/target/target.c b/src/target/target.c
index 21a8532..1d0653d 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -2585,12 +2585,38 @@ static int handle_target(void *priv)
        return retval;
 }
 
+static void handle_reg_display_one_register(struct command_context *cmd_ctx,
+               struct reg *reg)
+{
+       char *value;
+
+       if (!reg)
+               return;
+
+       /* only print cached values if they are valid */
+       if (reg->valid) {
+               value = buf_to_str(reg->value, reg->size, 16);
+               if (!value)
+                       return;
+
+               command_print(cmd_ctx,
+                               "%4s (/%2" PRIu32 "): 0x%s%s",
+                               reg->name,
+                               reg->size, value,
+                               reg->dirty ? " (dirty)" : "");
+               free(value);
+       } else {
+               command_print(cmd_ctx, "%4s (/%2" PRIu32 "): (invalid)",
+                               reg->name,
+                               reg->size);
+       }
+}
+
 COMMAND_HANDLER(handle_reg_command)
 {
        struct target *target;
        struct reg *reg = NULL;
        unsigned count = 0;
-       char *value;
 
        target = get_current_target(CMD_CTX);
 
@@ -2609,23 +2635,8 @@ COMMAND_HANDLER(handle_reg_command)
                        for (i = 0, reg = cache->reg_list;
                                        i < cache->num_regs;
                                        i++, reg++, count++) {
-                               /* only print cached values if they are valid */
-                               if (reg->valid) {
-                                       value = buf_to_str(reg->value,
-                                                       reg->size, 16);
-                                       command_print(CMD_CTX,
-                                                       "(%2i) %4s (/%2" PRIu32 
"): 0x%s%s",
-                                                       count, reg->name,
-                                                       reg->size, value,
-                                                       reg->dirty
-                                                               ? " (dirty)"
-                                                               : "");
-                                       free(value);
-                               } else {
-                                       command_print(CMD_CTX, "(%2i) %4s (/%2" 
PRIu32 "): (invalid)",
-                                                         count, reg->name,
-                                                         reg->size) ;
-                               }
+                               command_print_sameline(CMD_CTX, "(%2i) ", 
count);
+                               handle_reg_display_one_register(CMD_CTX, reg);
                        }
                        cache = cache->next;
                }
@@ -2678,9 +2689,7 @@ COMMAND_HANDLER(handle_reg_command)
 
                if (reg->valid == 0)
                        reg->type->get(reg);
-               value = buf_to_str(reg->value, reg->size, 16);
-               command_print(CMD_CTX, "%s (/%i): 0x%s", reg->name, 
(int)(reg->size), value);
-               free(value);
+               handle_reg_display_one_register(CMD_CTX, reg);
                return ERROR_OK;
        }
 
@@ -2692,10 +2701,7 @@ COMMAND_HANDLER(handle_reg_command)
                str_to_buf(CMD_ARGV[1], strlen(CMD_ARGV[1]), buf, reg->size, 0);
 
                reg->type->set(reg, buf);
-
-               value = buf_to_str(reg->value, reg->size, 16);
-               command_print(CMD_CTX, "%s (/%i): 0x%s", reg->name, 
(int)(reg->size), value);
-               free(value);
+               handle_reg_display_one_register(CMD_CTX, reg);
 
                free(buf);
 

-- 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to