Import alloca explicitly
[deliverable/binutils-gdb.git] / gdb / sol2-tdep.c
CommitLineData
081bf9da
MK
1/* Target-dependent code for Solaris.
2
ecd75fc8 3 Copyright (C) 2006-2014 Free Software Foundation, Inc.
081bf9da
MK
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
081bf9da
MK
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
081bf9da
MK
19
20#include "defs.h"
21#include "frame.h"
22#include "symtab.h"
28439f5e 23#include "inferior.h"
77e371c0 24#include "objfiles.h"
081bf9da
MK
25
26#include "sol2-tdep.h"
27
28CORE_ADDR
29sol2_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
30{
3b7344d5 31 struct bound_minimal_symbol msym;
081bf9da
MK
32
33 msym = lookup_minimal_symbol("elf_bndr", NULL, NULL);
77e371c0 34 if (msym.minsym && BMSYMBOL_VALUE_ADDRESS (msym) == pc)
c7ce8faa 35 return frame_unwind_caller_pc (get_current_frame ());
081bf9da
MK
36
37 return 0;
38}
28439f5e
PA
39
40/* This is how we want PTIDs from Solaris core files to be
41 printed. */
42
43char *
44sol2_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
45{
46 static char buf[80];
3e3420f6
PA
47 struct inferior *inf;
48 int pid;
28439f5e 49
3e3420f6
PA
50 /* Check whether we're printing an LWP (gdb thread) or a
51 process. */
52 pid = ptid_get_lwp (ptid);
53 if (pid != 0)
54 {
55 /* A thread. */
56 xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));
57 return buf;
58 }
59
60 /* GDB didn't use to put a NT_PSTATUS note in Solaris cores. If
61 that's missing, then we're dealing with a fake PID corelow.c made
62 up. */
63 inf = find_inferior_pid (ptid_get_pid (ptid));
64 if (inf == NULL || inf->fake_pid_p)
65 {
66 xsnprintf (buf, sizeof buf, "<core>");
67 return buf;
68 }
69
70 /* Not fake; print as usual. */
71 return normal_pid_to_str (ptid);
28439f5e 72}
This page took 0.882721 seconds and 4 git commands to generate.