gdb/testsuite/
[deliverable/binutils-gdb.git] / gdb / sol2-tdep.c
CommitLineData
081bf9da
MK
1/* Target-dependent code for Solaris.
2
28e7fd62 3 Copyright (C) 2006-2013 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"
081bf9da
MK
24
25#include "sol2-tdep.h"
26
27CORE_ADDR
28sol2_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
29{
30 struct minimal_symbol *msym;
31
32 msym = lookup_minimal_symbol("elf_bndr", NULL, NULL);
33 if (msym && SYMBOL_VALUE_ADDRESS (msym) == pc)
c7ce8faa 34 return frame_unwind_caller_pc (get_current_frame ());
081bf9da
MK
35
36 return 0;
37}
28439f5e
PA
38
39/* This is how we want PTIDs from Solaris core files to be
40 printed. */
41
42char *
43sol2_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
44{
45 static char buf[80];
3e3420f6
PA
46 struct inferior *inf;
47 int pid;
28439f5e 48
3e3420f6
PA
49 /* Check whether we're printing an LWP (gdb thread) or a
50 process. */
51 pid = ptid_get_lwp (ptid);
52 if (pid != 0)
53 {
54 /* A thread. */
55 xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));
56 return buf;
57 }
58
59 /* GDB didn't use to put a NT_PSTATUS note in Solaris cores. If
60 that's missing, then we're dealing with a fake PID corelow.c made
61 up. */
62 inf = find_inferior_pid (ptid_get_pid (ptid));
63 if (inf == NULL || inf->fake_pid_p)
64 {
65 xsnprintf (buf, sizeof buf, "<core>");
66 return buf;
67 }
68
69 /* Not fake; print as usual. */
70 return normal_pid_to_str (ptid);
28439f5e 71}
This page took 0.713984 seconds and 4 git commands to generate.