| Index: gdb/sol2-tdep.c
|
| diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c
|
| index e93758d93e431940ea201331bb85e8e5e4492c49..b9dcd267abd469ae567eefcd6080217f3be8bf25 100644
|
| --- a/gdb/sol2-tdep.c
|
| +++ b/gdb/sol2-tdep.c
|
| @@ -1,6 +1,6 @@
|
| /* Target-dependent code for Solaris.
|
|
|
| - Copyright (C) 2006-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2006-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -43,7 +43,29 @@ char *
|
| sol2_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
|
| {
|
| static char buf[80];
|
| + struct inferior *inf;
|
| + int pid;
|
|
|
| - xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));
|
| - return buf;
|
| + /* Check whether we're printing an LWP (gdb thread) or a
|
| + process. */
|
| + pid = ptid_get_lwp (ptid);
|
| + if (pid != 0)
|
| + {
|
| + /* A thread. */
|
| + xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));
|
| + return buf;
|
| + }
|
| +
|
| + /* 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));
|
| + if (inf == NULL || inf->fake_pid_p)
|
| + {
|
| + xsnprintf (buf, sizeof buf, "<core>");
|
| + return buf;
|
| + }
|
| +
|
| + /* Not fake; print as usual. */
|
| + return normal_pid_to_str (ptid);
|
| }
|
|
|