[spu] throw error when target_read_memory fails
authorYao Qi <yao.qi@linaro.org>
Fri, 18 Mar 2016 14:39:09 +0000 (14:39 +0000)
committerYao Qi <yao.qi@linaro.org>
Fri, 18 Mar 2016 14:39:09 +0000 (14:39 +0000)
I happen to see that 1 is returned in spu_software_single_step when
target_read_memory returns 1.  It must be wrong.  That patch changes
it to throwing an error.  Note that I choose to throw error because I
find the code in the end of spu_software_single_step throws errors.

gdb:

2016-03-18  Yao Qi  <yao.qi@linaro.org>

* spu-tdep.c (spu_software_single_step): Throw error when
target_read_memory fails.

gdb/ChangeLog
gdb/spu-tdep.c

index 2df6ccd7fa3ce9cb5d59710842a355faf567b07f..c074568139333e7776f5bd79b92418421589d949 100644 (file)
@@ -1,3 +1,8 @@
+2016-03-18  Yao Qi  <yao.qi@linaro.org>
+
+       * spu-tdep.c (spu_software_single_step): Throw error when
+       target_read_memory fails.
+
 2016-03-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * linux-thread-db.c (check_pid_namespace_match): Extend the message.
index bf3b28912c675260fbe0a71534e08c19e34cd9ef..8dad5c325202681acb3706eafbe49134831a564b 100644 (file)
@@ -1632,7 +1632,9 @@ spu_software_single_step (struct frame_info *frame)
   pc = get_frame_pc (frame);
 
   if (target_read_memory (pc, buf, 4))
-    return 1;
+    throw_error (MEMORY_ERROR, _("Could not read instruction at %s."),
+                paddress (gdbarch, pc));
+
   insn = extract_unsigned_integer (buf, 4, byte_order);
 
   /* Get local store limit.  */