gdb_server: add debug signal reason prints 20/7720/4
authorMarek Vrbka <marek.vrbka@codasip.com>
Mon, 29 May 2023 12:41:34 +0000 (14:41 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 10 Jun 2023 17:00:26 +0000 (17:00 +0000)
Added debug prints to show what is the target debug reason. Also added
debug print for Ctrl-C response. This is useful for troubleshooting and
log analysis.

Change-Id: I055936257d989efe7255656198a8d73a367fcd15
Signed-off-by: Marek Vrbka <marek.vrbka@codasip.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/7720
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Tested-by: jenkins
src/server/gdb_server.c
src/target/target.c
src/target/target.h

index 943fe4008835bd303e31a31e807334963c8343d0..0baf7553b21c29105180bc25d8191578caf3545b 100644 (file)
@@ -145,6 +145,9 @@ static char gdb_running_type;
 
 static int gdb_last_signal(struct target *target)
 {
+       LOG_TARGET_DEBUG(target, "Debug reason is: %s",
+                       target_debug_reason_str(target->debug_reason));
+
        switch (target->debug_reason) {
                case DBG_REASON_DBGRQ:
                        return 0x2;             /* SIGINT */
@@ -159,8 +162,9 @@ static int gdb_last_signal(struct target *target)
                case DBG_REASON_NOTHALTED:
                        return 0x0;             /* no signal... shouldn't happen */
                default:
-                       LOG_USER("undefined debug reason %d - target needs reset",
-                                       target->debug_reason);
+                       LOG_USER("undefined debug reason %d (%s) - target needs reset",
+                                       target->debug_reason,
+                                       target_debug_reason_str(target->debug_reason));
                        return 0x0;
        }
 }
@@ -798,6 +802,7 @@ static void gdb_signal_reply(struct target *target, struct connection *connectio
                }
 
                if (gdb_connection->ctrl_c) {
+                       LOG_TARGET_DEBUG(target, "Responding with signal 2 (SIGINT) to debugger due to Ctrl-C");
                        signal_var = 0x2;
                } else
                        signal_var = gdb_last_signal(ct);
index 0099292119f8041f6f8e938806ac2cefd0bb2cf4..5858aa573b8cc4458ac64c3831e5adedd1ac19f1 100644 (file)
@@ -7147,3 +7147,29 @@ static int target_register_user_commands(struct command_context *cmd_ctx)
 
        return register_commands(cmd_ctx, NULL, target_exec_command_handlers);
 }
+
+const char *target_debug_reason_str(enum target_debug_reason reason)
+{
+       switch (reason) {
+               case DBG_REASON_DBGRQ:
+                       return "DBGRQ";
+               case DBG_REASON_BREAKPOINT:
+                       return "BREAKPOINT";
+               case DBG_REASON_WATCHPOINT:
+                       return "WATCHPOINT";
+               case DBG_REASON_WPTANDBKPT:
+                       return "WPTANDBKPT";
+               case DBG_REASON_SINGLESTEP:
+                       return "SINGLESTEP";
+               case DBG_REASON_NOTHALTED:
+                       return "NOTHALTED";
+               case DBG_REASON_EXIT:
+                       return "EXIT";
+               case DBG_REASON_EXC_CATCH:
+                       return "EXC_CATCH";
+               case DBG_REASON_UNDEFINED:
+                       return "UNDEFINED";
+               default:
+                       return "UNKNOWN!";
+       }
+}
index 2a2f5315ff7e8d806fc22eec17297ef109ec01f6..abeb8ed511139d1875a64eceae7723178eb10fb0 100644 (file)
@@ -803,4 +803,6 @@ extern bool get_target_reset_nag(void);
 
 #define TARGET_DEFAULT_POLLING_INTERVAL                100
 
+const char *target_debug_reason_str(enum target_debug_reason reason);
+
 #endif /* OPENOCD_TARGET_TARGET_H */

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)