gdb_server: add debug signal reason prints
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
This commit is contained in:
parent
370bf43fb1
commit
0854c83076
|
@ -145,6 +145,9 @@ static char gdb_running_type;
|
||||||
|
|
||||||
static int gdb_last_signal(struct target *target)
|
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) {
|
switch (target->debug_reason) {
|
||||||
case DBG_REASON_DBGRQ:
|
case DBG_REASON_DBGRQ:
|
||||||
return 0x2; /* SIGINT */
|
return 0x2; /* SIGINT */
|
||||||
|
@ -159,8 +162,9 @@ static int gdb_last_signal(struct target *target)
|
||||||
case DBG_REASON_NOTHALTED:
|
case DBG_REASON_NOTHALTED:
|
||||||
return 0x0; /* no signal... shouldn't happen */
|
return 0x0; /* no signal... shouldn't happen */
|
||||||
default:
|
default:
|
||||||
LOG_USER("undefined debug reason %d - target needs reset",
|
LOG_USER("undefined debug reason %d (%s) - target needs reset",
|
||||||
target->debug_reason);
|
target->debug_reason,
|
||||||
|
target_debug_reason_str(target->debug_reason));
|
||||||
return 0x0;
|
return 0x0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -798,6 +802,7 @@ static void gdb_signal_reply(struct target *target, struct connection *connectio
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gdb_connection->ctrl_c) {
|
if (gdb_connection->ctrl_c) {
|
||||||
|
LOG_TARGET_DEBUG(target, "Responding with signal 2 (SIGINT) to debugger due to Ctrl-C");
|
||||||
signal_var = 0x2;
|
signal_var = 0x2;
|
||||||
} else
|
} else
|
||||||
signal_var = gdb_last_signal(ct);
|
signal_var = gdb_last_signal(ct);
|
||||||
|
|
|
@ -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);
|
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!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -803,4 +803,6 @@ extern bool get_target_reset_nag(void);
|
||||||
|
|
||||||
#define TARGET_DEFAULT_POLLING_INTERVAL 100
|
#define TARGET_DEFAULT_POLLING_INTERVAL 100
|
||||||
|
|
||||||
|
const char *target_debug_reason_str(enum target_debug_reason reason);
|
||||||
|
|
||||||
#endif /* OPENOCD_TARGET_TARGET_H */
|
#endif /* OPENOCD_TARGET_TARGET_H */
|
||||||
|
|
Loading…
Reference in New Issue