X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fcommon%2Fsim-utils.c;h=d420f55d5150f0247c4ac20b0f598a9d8bfd5e31;hb=41792d688a5a1f158d6e9ecda2b603ae122d69a1;hp=c5c8e9876b31a52faad7581e5953e47a8c99a979;hpb=d79fe0d64301cbe37e2ad0e25a051f8607f08807;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/common/sim-utils.c b/sim/common/sim-utils.c index c5c8e9876b..d420f55d51 100644 --- a/sim/common/sim-utils.c +++ b/sim/common/sim-utils.c @@ -1,6 +1,5 @@ /* Miscellaneous simulator utilities. - Copyright (C) 1997, 1998, 2007, 2008, 2009, 2010, 2011 - 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. @@ -49,10 +48,6 @@ along with this program. If not, see . */ #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. */ @@ -106,7 +101,7 @@ sim_state_alloc (SIM_OPEN_KIND kind, 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); @@ -212,7 +207,7 @@ sim_add_commas (char *buf, int sizeof_buf, unsigned long value) 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); @@ -235,13 +230,13 @@ sim_analyze_program (SIM_DESC sd, char *prog_name, bfd *prog_bfd) prog_bfd = bfd_openr (prog_name, STATE_TARGET (sd)); if (prog_bfd == NULL) { - sim_io_eprintf (sd, "%s: can't open \"%s\": %s\n", + sim_io_eprintf (sd, "%s: can't open \"%s\": %s\n", STATE_MY_NAME (sd), prog_name, bfd_errmsg (bfd_get_error ())); return SIM_RC_FAIL; } - if (!bfd_check_format (prog_bfd, bfd_object)) + if (!bfd_check_format (prog_bfd, bfd_object)) { sim_io_eprintf (sd, "%s: \"%s\" is not an object file: %s\n", STATE_MY_NAME (sd), @@ -268,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) - 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_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; } @@ -329,15 +324,20 @@ sim_do_commandf (SIM_DESC sd, { va_list ap; char *buf; + int ret; + 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_do_command (sd, buf); - va_end (ap); free (buf); } @@ -355,8 +355,8 @@ map_to_str (unsigned map) 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; } } @@ -385,8 +385,8 @@ access_to_str (unsigned access) 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; } } @@ -402,5 +402,3 @@ transfer_to_str (unsigned transfer) default: return "(error)"; } } - -