From 9e529e1d3d54431b6e1b0433efe8203887c0580f Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Wed, 11 Apr 2012 16:58:57 +0000 Subject: [PATCH] gdb/ Provide more specific displaced-stepping memory error message. * infrun.c (displaced_step_prepare): New variable status. Call target_read_memory instead of read_memory, provide more specific error message. --- gdb/ChangeLog | 7 +++++++ gdb/infrun.c | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1c2e48b243c..aceef1e8397 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2012-04-11 Jan Kratochvil + + Provide more specific displaced-stepping memory error message. + * infrun.c (displaced_step_prepare): New variable status. Call + target_read_memory instead of read_memory, provide more specific + error message. + 2012-04-11 Tristan Gingold PR gdb/13901 diff --git a/gdb/infrun.c b/gdb/infrun.c index 103ef30c2d7..62f67c93013 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -1296,6 +1296,7 @@ displaced_step_prepare (ptid_t ptid) ULONGEST len; struct displaced_step_closure *closure; struct displaced_step_inferior_state *displaced; + int status; /* We should never reach this function if the architecture does not support displaced stepping. */ @@ -1356,7 +1357,12 @@ displaced_step_prepare (ptid_t ptid) displaced->step_saved_copy = xmalloc (len); ignore_cleanups = make_cleanup (free_current_contents, &displaced->step_saved_copy); - read_memory (copy, displaced->step_saved_copy, len); + status = target_read_memory (copy, displaced->step_saved_copy, len); + if (status != 0) + throw_error (MEMORY_ERROR, + _("Error accessing memory address %s (%s) for " + "displaced-stepping scratch space."), + paddress (gdbarch, copy), safe_strerror (status)); if (debug_displaced) { fprintf_unfiltered (gdb_stdlog, "displaced: saved %s: ", -- 2.30.2