Don't write to inferior_ptid in linux_get_siginfo_data
[deliverable/binutils-gdb.git] / sim / common / sim-utils.c
index 2ec7c7c21690d976be756c21d4244fff7df676a3..d420f55d5150f0247c4ac20b0f598a9d8bfd5e31 100644 (file)
@@ -1,5 +1,5 @@
 /* Miscellaneous simulator utilities.
 /* Miscellaneous simulator utilities.
-   Copyright (C) 1997-2014 Free Software Foundation, Inc.
+   Copyright (C) 1997-2020 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
 
 This file is part of GDB, the GNU debugger.
    Contributed by Cygnus Support.
 
 This file is part of GDB, the GNU debugger.
@@ -48,10 +48,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "bfd.h"
 #include "sim-utils.h"
 
 #include "bfd.h"
 #include "sim-utils.h"
 
-/* Global pointer to all state data.
-   Set by sim_resume.  */
-struct sim_state *current_state;
-
 /* Allocate zero filled memory with xcalloc - xcalloc aborts if the
    allocation fails.  */
 
 /* Allocate zero filled memory with xcalloc - xcalloc aborts if the
    allocation fails.  */
 
@@ -105,7 +101,7 @@ sim_state_alloc (SIM_OPEN_KIND kind,
 void
 sim_state_free (SIM_DESC sd)
 {
 void
 sim_state_free (SIM_DESC sd)
 {
-  ASSERT (sd->base.magic == SIM_MAGIC_NUMBER);
+  ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
 
 #ifdef SIM_STATE_FREE
   SIM_STATE_FREE (sd);
 
 #ifdef SIM_STATE_FREE
   SIM_STATE_FREE (sd);
@@ -211,7 +207,7 @@ sim_add_commas (char *buf, int sizeof_buf, unsigned long value)
    bfd open.  */
 
 SIM_RC
    bfd open.  */
 
 SIM_RC
-sim_analyze_program (SIM_DESC sd, char *prog_name, bfd *prog_bfd)
+sim_analyze_program (SIM_DESC sd, const char *prog_name, bfd *prog_bfd)
 {
   asection *s;
   SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
 {
   asection *s;
   SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
@@ -267,11 +263,11 @@ sim_analyze_program (SIM_DESC sd, char *prog_name, bfd *prog_bfd)
   STATE_START_ADDR (sd) = bfd_get_start_address (prog_bfd);
 
   for (s = prog_bfd->sections; s; s = s->next)
   STATE_START_ADDR (sd) = bfd_get_start_address (prog_bfd);
 
   for (s = prog_bfd->sections; s; s = s->next)
-    if (strcmp (bfd_get_section_name (prog_bfd, s), ".text") == 0)
+    if (strcmp (bfd_section_name (s), ".text") == 0)
       {
        STATE_TEXT_SECTION (sd) = s;
       {
        STATE_TEXT_SECTION (sd) = s;
-       STATE_TEXT_START (sd) = bfd_get_section_vma (prog_bfd, s);
-       STATE_TEXT_END (sd) = STATE_TEXT_START (sd) + bfd_section_size (prog_bfd, s);
+       STATE_TEXT_START (sd) = bfd_section_vma (s);
+       STATE_TEXT_END (sd) = STATE_TEXT_START (sd) + bfd_section_size (s);
        break;
       }
 
        break;
       }
 
@@ -328,15 +324,20 @@ sim_do_commandf (SIM_DESC sd,
 {
   va_list ap;
   char *buf;
 {
   va_list ap;
   char *buf;
+  int ret;
+
   va_start (ap, fmt);
   va_start (ap, fmt);
-  if (vasprintf (&buf, fmt, ap) < 0)
+  ret = vasprintf (&buf, fmt, ap);
+  va_end (ap);
+
+  if (ret < 0)
     {
       sim_io_eprintf (sd, "%s: asprintf failed for `%s'\n",
                      STATE_MY_NAME (sd), fmt);
       return;
     }
     {
       sim_io_eprintf (sd, "%s: asprintf failed for `%s'\n",
                      STATE_MY_NAME (sd), fmt);
       return;
     }
+
   sim_do_command (sd, buf);
   sim_do_command (sd, buf);
-  va_end (ap);
   free (buf);
 }
 
   free (buf);
 }
 
@@ -354,8 +355,8 @@ map_to_str (unsigned map)
     case io_map: return "io";
     default:
       {
     case io_map: return "io";
     default:
       {
-       static char str[10];
-       sprintf (str, "(%ld)", (long) map);
+       static char str[16];
+       snprintf (str, sizeof(str), "(%ld)", (long) map);
        return str;
       }
     }
        return str;
       }
     }
@@ -384,8 +385,8 @@ access_to_str (unsigned access)
     case access_read_write_exec_io: return "read_write_exec_io";
     default:
       {
     case access_read_write_exec_io: return "read_write_exec_io";
     default:
       {
-       static char str[10];
-       sprintf (str, "(%ld)", (long) access);
+       static char str[16];
+       snprintf (str, sizeof(str), "(%ld)", (long) access);
        return str;
       }
     }
        return str;
       }
     }
This page took 0.024266 seconds and 4 git commands to generate.