gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / dicos-tdep.c
index d64efe56aafd14b717a5bb5cf458d5f16c0ed882..62b78133e3ad72f0179dec8a8d60b574536def87 100644 (file)
@@ -1,6 +1,6 @@
 /* Target-dependent, architecture-independent code for DICOS, for GDB.
 
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 
 #include "defs.h"
 #include "osabi.h"
-#include "gdb_string.h"
 #include "solib.h"
 #include "solib-target.h"
 #include "inferior.h"
 #include "dicos-tdep.h"
+#include "gdbarch.h"
 
 void
 dicos_init_abi (struct gdbarch *gdbarch)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
   set_solib_ops (gdbarch, &solib_target_so_ops);
 
   /* Every process, although has its own address space, sees the same
-     list of shared libraries.  */
+     list of shared libraries.  There's no "main executable" in DICOS,
+     so this accounts for all code.  */
   set_gdbarch_has_global_solist (gdbarch, 1);
 
+  /* The DICOS breakpoint API takes care of magically making
+     breakpoints visible to all inferiors.  */
+  set_gdbarch_has_global_breakpoints (gdbarch, 1);
+
   /* There's no (standard definition of) entry point or a guaranteed
      text location with a symbol where to place the call dummy, so we
-     put it on the stack.  */
-  set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
+     need it on the stack.  Rely on i386_gdbarch_init used also for
+     amd64 to set up ON_STACK inferior calls.  */
 
   /* DICOS rewinds the PC itself.  */
   set_gdbarch_decr_pc_after_break (gdbarch, 0);
@@ -67,7 +70,7 @@ dicos_load_module_p (bfd *abfd, int header_size)
   if (!section)
     return 0;
 
-  if (bfd_section_size (abfd, section) != header_size)
+  if (bfd_section_size (section) != header_size)
     return 0;
 
   /* Dicos LMs always have a "Dicos_loadModuleInfo" symbol
@@ -76,7 +79,8 @@ dicos_load_module_p (bfd *abfd, int header_size)
   storage_needed = bfd_get_symtab_upper_bound (abfd);
   if (storage_needed < 0)
     {
-      warning (_("Can't read elf symbols from %s: %s"), bfd_get_filename (abfd),
+      warning (_("Can't read elf symbols from %s: %s"),
+              bfd_get_filename (abfd),
               bfd_errmsg (bfd_get_error ()));
       return 0;
     }
@@ -85,7 +89,7 @@ dicos_load_module_p (bfd *abfd, int header_size)
     {
       long i, symcount;
 
-      symbol_table = xmalloc (storage_needed);
+      symbol_table = (asymbol **) xmalloc (storage_needed);
       symcount = bfd_canonicalize_symtab (abfd, symbol_table);
 
       if (symcount < 0)
This page took 0.025507 seconds and 4 git commands to generate.