Add detection of IMB and IMBRange SWIs.
[deliverable/binutils-gdb.git] / gdb / exec.c
index 87aed010f018988fc492016dbced6c7f3e55a6cb..d24c4b49bff0e2a873c12a4642a569af15673283 100644 (file)
@@ -191,7 +191,7 @@ exec_file_attach (args, from_tty)
       if (argv == NULL)
        nomem (0);
 
-      make_cleanup ((make_cleanup_func) freeargv, (char *) argv);
+      make_cleanup_freeargv (argv);
 
       for (; (*argv != NULL) && (**argv == '-'); argv++) {;}
       if (*argv == NULL)
@@ -641,6 +641,44 @@ exec_files_info (t)
     }
 }
 
+/* msnyder 5/21/99:
+   exec_set_section_offsets sets the offsets of all the sections
+   in the exec objfile.  */
+
+void
+exec_set_section_offsets (text_off, data_off, bss_off)
+     bfd_signed_vma text_off;
+     bfd_signed_vma data_off;
+     bfd_signed_vma bss_off;
+{
+  struct section_table *sect;
+  for (sect = exec_ops.to_sections; 
+       sect < exec_ops.to_sections_end; 
+       sect++)
+    {
+      flagword flags;
+
+      flags = bfd_get_section_flags (exec_bfd, sect->the_bfd_section);
+
+      if (flags & SEC_CODE)
+       {
+         sect->addr    += text_off;
+         sect->endaddr += text_off;
+       }
+      else if (flags & (SEC_DATA | SEC_LOAD))
+       {
+         sect->addr    += data_off;
+         sect->endaddr += data_off;
+       }
+      else if (flags & SEC_ALLOC)
+       {
+         sect->addr    += bss_off;
+         sect->endaddr += bss_off;
+       }
+    }
+}
+
 static void
 set_section_command (args, from_tty)
      char *args;
This page took 0.02435 seconds and 4 git commands to generate.