* Makefile.in (i386nbsd-tdep.o): Add $(arch_utils_h),
[deliverable/binutils-gdb.git] / gdb / exec.c
index 29da0cc01001945d8795195683b53efd8b8321b1..0228f419465fc7c249a505b6137f8ed84946d90f 100644 (file)
@@ -1,5 +1,6 @@
 /* Work with executable files, for GDB. 
-   Copyright 1988, 1989, 1991, 1992, 1993, 1994, 1997, 1998, 2001
+   Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+   1998, 1999, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -28,6 +29,7 @@
 #include "symfile.h"
 #include "objfiles.h"
 #include "completer.h"
+#include "value.h"
 
 #ifdef USG
 #include <sys/types.h>
@@ -70,8 +72,6 @@ static void init_exec_ops (void);
 
 void _initialize_exec (void);
 
-extern int info_verbose;
-
 /* The target vector for executable files.  */
 
 struct target_ops exec_ops;
@@ -398,7 +398,7 @@ build_section_table (bfd *some_bfd, struct section_table **start,
   *end = *start;
   bfd_map_over_sections (some_bfd, add_to_section_table, (char *) end);
   if (*end > *start + count)
-    abort ();
+    internal_error (__FILE__, __LINE__, "failed internal consistency check");
   /* We could realloc the table, but it probably loses for most files.  */
   return 0;
 }
@@ -485,10 +485,10 @@ xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
   struct section_table *p;
   CORE_ADDR nextsectaddr, memend;
   boolean (*xfer_fn) (bfd *, sec_ptr, PTR, file_ptr, bfd_size_type);
-  asection *section;
+  asection *section = NULL;
 
   if (len <= 0)
-    abort ();
+    internal_error (__FILE__, __LINE__, "failed internal consistency check");
 
   if (overlay_debugging)
     {
@@ -685,10 +685,24 @@ ignore (CORE_ADDR addr, char *contents)
   return 0;
 }
 
+/* Find mapped memory. */
+
+extern void
+exec_set_find_memory_regions (int (*func) (int (*) (CORE_ADDR, 
+                                                   unsigned long, 
+                                                   int, int, int, 
+                                                   void *),
+                                          void *))
+{
+  exec_ops.to_find_memory_regions = func;
+}
+
+static char *exec_make_note_section (bfd *, int *);
+
 /* Fill in the exec file target vector.  Very few entries need to be
    defined.  */
 
-void
+static void
 init_exec_ops (void)
 {
   exec_ops.to_shortname = "exec";
@@ -708,6 +722,7 @@ Specify the filename of the executable file.";
   exec_ops.to_clone_and_follow_inferior = find_default_clone_and_follow_inferior;
   exec_ops.to_stratum = file_stratum;
   exec_ops.to_has_memory = 1;
+  exec_ops.to_make_corefile_notes = exec_make_note_section;
   exec_ops.to_magic = OPS_MAGIC;
 }
 
@@ -727,7 +742,7 @@ and it is the program executed when you use the `run' command.\n\
 If FILE cannot be found as specified, your execution directory path\n\
 ($PATH) is searched for a command of that name.\n\
 No arg means to have no executable file and no symbols.", &cmdlist);
-      c->completer = filename_completer;
+      set_cmd_completer (c, filename_completer);
     }
 
   c = add_cmd ("exec-file", class_files, exec_file_command,
@@ -735,7 +750,7 @@ No arg means to have no executable file and no symbols.", &cmdlist);
 If FILE cannot be found as specified, your execution directory path\n\
 is searched for a command of that name.\n\
 No arg means have no executable file.", &cmdlist);
-  c->completer = filename_completer;
+  set_cmd_completer (c, filename_completer);
 
   add_com ("section", class_files, set_section_command,
           "Change the base address of section SECTION of the exec file to ADDR.\n\
@@ -752,3 +767,9 @@ file itself are wrong.  Each section must be changed separately.  The\n\
 
   add_target (&exec_ops);
 }
+
+static char *
+exec_make_note_section (bfd *obfd, int *note_size)
+{
+  error ("Can't create a corefile");
+}
This page took 0.027556 seconds and 4 git commands to generate.