diff options
author | Kevin Buettner <kevinb@redhat.com> | 2002-05-30 22:41:24 +0000 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2002-05-30 22:41:24 +0000 |
commit | ee8ff470c4c1c850ebe9f7f09695ca8be0a21540 (patch) | |
tree | 4ba3ca0f044a0db99e8490f122935716bbc72ec0 /gdb/corefile.c | |
parent | 1c5cec28bb58d3d36dcb53c3f502b0594f62209e (diff) | |
download | binutils-gdb-ee8ff470c4c1c850ebe9f7f09695ca8be0a21540.tar.gz |
Make safe_read_memory_integer() return non-zero result when successful.
Diffstat (limited to 'gdb/corefile.c')
-rw-r--r-- | gdb/corefile.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/gdb/corefile.c b/gdb/corefile.c index 29eeac87ebe..4f6eef2ce72 100644 --- a/gdb/corefile.c +++ b/gdb/corefile.c @@ -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; |