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.
This commit is contained in:
parent
05b4bd799a
commit
3e3420f6a1
@ -1,3 +1,11 @@
|
||||
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.
|
||||
|
||||
2012-12-11 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* configure.ac (detect type of /proc): Remove Unixware handling.
|
||||
|
@ -5507,6 +5507,13 @@ procfs_make_note_section (bfd *obfd, int *note_size)
|
||||
|
||||
stop_signal = find_stop_signal ();
|
||||
|
||||
#ifdef NEW_PROC_API
|
||||
fill_gregset (get_current_regcache (), &gregs, -1);
|
||||
note_data = elfcore_write_pstatus (obfd, note_data, note_size,
|
||||
PIDGET (inferior_ptid),
|
||||
stop_signal, &gregs);
|
||||
#endif
|
||||
|
||||
thread_args.obfd = obfd;
|
||||
thread_args.note_data = note_data;
|
||||
thread_args.note_size = note_size;
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user