s12z/disassembler: call memory_error_func when appropriate
authorAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 7 Oct 2021 16:48:28 +0000 (17:48 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Mon, 11 Oct 2021 13:07:03 +0000 (14:07 +0100)
If a call to the read_memory_func fails then we should call the
memory_error_func to notify the user of the disassembler of the
address that was a problem.

Without this GDB will report all memory errors as being at address
0x0.

opcodes/ChangeLog:

* s12z-disc.c (abstract_read_memory): Call memory_error_func if
the read_memory_func call fails.

opcodes/s12z-dis.c

index ec8f4f708837021048db85aef99d563ed32b4a0d..24125574b7826e5abea0b74629b47bae9908b944 100644 (file)
@@ -61,6 +61,9 @@ abstract_read_memory (struct mem_read_abstraction_base *b,
 
   int status = (*mra->info->read_memory_func) (mra->memaddr + offset,
                                               bytes, n, mra->info);
+  if (status != 0)
+    (*mra->info->memory_error_func) (status, mra->memaddr + offset,
+                                     mra->info);
   return status != 0 ? -1 : 0;
 }