diff options
author | Pedro Alves <palves@redhat.com> | 2012-12-11 15:23:12 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2012-12-11 15:23:12 +0000 |
commit | 4450a1ffb745823242d5f73240375928d03627e6 (patch) | |
tree | dbee7b2cbc535911b07f7f1b2d2a1d377fd982a0 /gdb/sol2-tdep.c | |
parent | 93502ee2ff8cfd5f087f14440ac06e73964fc329 (diff) | |
download | gdb-4450a1ffb745823242d5f73240375928d03627e6.tar.gz |
2012-12-11 Pedro Alves <pedro@codesourcery.com>
Pedro Alves <palves@redhat.com>
* procfs.c (procfs_make_note_section) [NEW_PROC_API]: Output a
NT_PSTATUS note.
* sol2-tdep.c (sol2_core_pid_to_str): Print process IDs
differently from LWP IDs.
Diffstat (limited to 'gdb/sol2-tdep.c')
-rw-r--r-- | gdb/sol2-tdep.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c index e93758d93e4..e292b8d35a9 100644 --- a/gdb/sol2-tdep.c +++ b/gdb/sol2-tdep.c @@ -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); } |