2002-02-10 Daniel Jacobowitz <drow@mvista.com>
[deliverable/binutils-gdb.git] / gdb / corefile.c
index 4e096f05908b0f1e7893af8d67dd789d8f52401d..7acbd6eb5670493b2cd44174bf719b62cde975a2 100644 (file)
@@ -262,6 +262,41 @@ dis_asm_print_address (bfd_vma addr, struct disassemble_info *info)
 
 /* Read an integer from debugged memory, given address and number of bytes.  */
 
+struct captured_read_memory_integer_arguments
+{
+  CORE_ADDR memaddr;
+  int len;
+  LONGEST result;
+};
+
+static int
+do_captured_read_memory_integer (void *data)
+{
+  struct captured_read_memory_integer_arguments *args = (struct captured_read_memory_integer_arguments*) data;
+  CORE_ADDR memaddr = args->memaddr;
+  int len = args->len;
+
+  args->result = read_memory_integer (memaddr, len);
+
+  return 0;
+}
+
+int
+safe_read_memory_integer (CORE_ADDR memaddr, int len, LONGEST *return_value)
+{
+  int status;
+  struct captured_read_memory_integer_arguments args;
+  args.memaddr = memaddr;
+  args.len = len;
+
+  status = catch_errors (do_captured_read_memory_integer, &args,
+                        "", RETURN_MASK_ALL);
+  if (!status)
+    *return_value = args.result;
+
+  return status;
+}
+
 LONGEST
 read_memory_integer (CORE_ADDR memaddr, int len)
 {
@@ -413,7 +448,7 @@ No arg means have no core file.  This command has been superseded by the\n\
                   "Set the current BFD target.\n\
 Use `set gnutarget auto' to specify automatic detection.",
                   &setlist);
-  c->function.sfunc = set_gnutarget_command;
+  set_cmd_sfunc (c, set_gnutarget_command);
   add_show_from_set (c, &showlist);
 
   if (getenv ("GNUTARGET"))
This page took 0.023748 seconds and 4 git commands to generate.