Only propagate register errors on some targets

Without this change, connecting to ARM targets is impossible.

Fixes #115.

Change-Id: Ie33c7e15ac1bed8c9cbd8e6a78de92d5498c5999
This commit is contained in:
Tim Newsome
2018-03-01 14:44:03 -08:00
parent 0c8235d11f
commit 1d9418fbb0
3 changed files with 13 additions and 4 deletions
+1
View File
@@ -245,6 +245,7 @@ static int riscv_init_target(struct command_context *cmd_ctx,
struct target *target)
{
LOG_DEBUG("riscv_init_target()");
target->propagate_register_errors = true;
target->arch_info = calloc(1, sizeof(riscv_info_t));
if (!target->arch_info)
return ERROR_FAIL;
+8
View File
@@ -204,6 +204,14 @@ struct target {
/* file-I/O information for host to do syscall */
struct gdb_fileio_info *fileio_info;
/**
* When true, send gdb an error result when reading/writing a register
* fails. This must be false for some ARM targets (Cortex-M3), where a 'g'
* packet results in an attempt to read 'r0', which fails, which causes gdb
* to close the connection.
*/
bool propagate_register_errors;
};
struct target_list {