X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsol2-tdep.c;h=03b510c9adedbbbad25a6ba95d3190cefaff04ba;hb=fe4b2ee65cfe923fcb25427db884e1d2e90fef6e;hp=feafc70c934ac1ef68828ffa9961122a29c4c688;hpb=ecd75fc8eed3bde86036141228074a20e55dcfc9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c index feafc70c93..03b510c9ad 100644 --- a/gdb/sol2-tdep.c +++ b/gdb/sol2-tdep.c @@ -1,6 +1,6 @@ /* Target-dependent code for Solaris. - Copyright (C) 2006-2014 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -21,16 +21,17 @@ #include "frame.h" #include "symtab.h" #include "inferior.h" +#include "objfiles.h" #include "sol2-tdep.h" CORE_ADDR sol2_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc) { - struct minimal_symbol *msym; + struct bound_minimal_symbol msym; msym = lookup_minimal_symbol("elf_bndr", NULL, NULL); - if (msym && SYMBOL_VALUE_ADDRESS (msym) == pc) + if (msym.minsym && BMSYMBOL_VALUE_ADDRESS (msym) == pc) return frame_unwind_caller_pc (get_current_frame ()); return 0; @@ -39,32 +40,27 @@ sol2_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc) /* This is how we want PTIDs from Solaris core files to be printed. */ -char * +std::string sol2_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid) { - static char buf[80]; struct inferior *inf; int pid; /* Check whether we're printing an LWP (gdb thread) or a process. */ - pid = ptid_get_lwp (ptid); + pid = ptid.lwp (); if (pid != 0) { /* A thread. */ - xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid)); - return buf; + return string_printf ("LWP %ld", ptid.lwp ()); } /* GDB didn't use to put a NT_PSTATUS note in Solaris cores. If that's missing, then we're dealing with a fake PID corelow.c made up. */ - inf = find_inferior_pid (ptid_get_pid (ptid)); + inf = find_inferior_ptid (current_inferior ()->process_target (), ptid); if (inf == NULL || inf->fake_pid_p) - { - xsnprintf (buf, sizeof buf, ""); - return buf; - } + return ""; /* Not fake; print as usual. */ return normal_pid_to_str (ptid);