Make safe_read_memory_integer() return non-zero result when successful.
authorKevin Buettner <kevinb@redhat.com>
Thu, 30 May 2002 22:41:24 +0000 (22:41 +0000)
committerKevin Buettner <kevinb@redhat.com>
Thu, 30 May 2002 22:41:24 +0000 (22:41 +0000)
gdb/ChangeLog
gdb/corefile.c

index 585d4c7552f0d31551a6735163ef3336b3198e92..1c470aa087f88b40fe1716eb45b1e020c329a83f 100644 (file)
@@ -1,3 +1,10 @@
+2002-05-30  Kevin Buettner  <kevinb@redhat.com>
+
+       * corefile.c (do_captured_read_memory_integer): Return non-zero
+       result.
+       (safe_read_memory_integer): Copy result of memory read when
+       status is non-zero.  Also, add comments.
+
 2002-05-20  Jason Thorpe  <thorpej@wasabisystems.com>
 
        * Makefile.in (ppc_tdep_h): Define.
index 29eeac87ebede5e0893944d9de997b1836e914c5..4f6eef2ce7241b3c227039c6b9f6c3e47cfd3c08 100644 (file)
@@ -260,7 +260,10 @@ dis_asm_print_address (bfd_vma addr, struct disassemble_info *info)
   print_address (addr, info->stream);
 }
 
-/* Read an integer from debugged memory, given address and number of bytes.  */
+/* Argument / return result struct for use with
+   do_captured_read_memory_integer().  MEMADDR and LEN are filled in
+   by gdb_read_memory_integer().  RESULT is the contents that were
+   successfully read from MEMADDR of length LEN.  */
 
 struct captured_read_memory_integer_arguments
 {
@@ -269,6 +272,13 @@ struct captured_read_memory_integer_arguments
   LONGEST result;
 };
 
+/* Helper function for gdb_read_memory_integer().  DATA must be a
+   pointer to a captured_read_memory_integer_arguments struct. 
+   Return 1 if successful.  Note that the catch_errors() interface
+   will return 0 if an error occurred while reading memory.  This
+   choice of return code is so that we can distinguish between
+   success and failure.  */
+
 static int
 do_captured_read_memory_integer (void *data)
 {
@@ -278,9 +288,13 @@ do_captured_read_memory_integer (void *data)
 
   args->result = read_memory_integer (memaddr, len);
 
-  return 0;
+  return 1;
 }
 
+/* Read memory at MEMADDR of length LEN and put the contents in
+   RETURN_VALUE.  Return 0 if MEMADDR couldn't be read and non-zero
+   if successful.  */
+
 int
 safe_read_memory_integer (CORE_ADDR memaddr, int len, LONGEST *return_value)
 {
@@ -291,7 +305,7 @@ safe_read_memory_integer (CORE_ADDR memaddr, int len, LONGEST *return_value)
 
   status = catch_errors (do_captured_read_memory_integer, &args,
                         "", RETURN_MASK_ALL);
-  if (!status)
+  if (status)
     *return_value = args.result;
 
   return status;