diff options
| author | Peter Edwards <peadar@FreeBSD.org> | 2005-01-11 14:53:16 +0000 |
|---|---|---|
| committer | Peter Edwards <peadar@FreeBSD.org> | 2005-01-11 14:53:16 +0000 |
| commit | ad93bc4a369f5d4b4283ab437a71ddcc6d5484cb (patch) | |
| tree | af654e027ceba1b1d469d1fa575f342ef7d5f0c1 /gnu | |
| parent | ab03e6d5971541e1d1c4d1f181638284f3ec1ee8 (diff) | |
Notes
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/usr.bin/gdb/libgdb/fbsd-threads.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gnu/usr.bin/gdb/libgdb/fbsd-threads.c b/gnu/usr.bin/gdb/libgdb/fbsd-threads.c index 02b250fd817e3..64e8db77d62d8 100644 --- a/gnu/usr.bin/gdb/libgdb/fbsd-threads.c +++ b/gnu/usr.bin/gdb/libgdb/fbsd-threads.c @@ -602,7 +602,8 @@ fbsd_lwp_fetch_registers (int regno) return; } - lwp = GET_LWP (inferior_ptid); + /* XXX: We've replaced the pid with the lwpid for GDB's benefit. */ + lwp = GET_PID (inferior_ptid); if (ptrace (PT_GETREGS, lwp, (caddr_t) &gregs, 0) == -1) error ("Cannot get lwp %d registers: %s\n", lwp, safe_strerror (errno)); @@ -1271,7 +1272,10 @@ ps_lgetregs (struct ps_prochandle *ph, lwpid_t lwpid, prgregset_t gregset) struct cleanup *old_chain; old_chain = save_inferior_ptid (); - inferior_ptid = BUILD_LWP (lwpid, PIDGET (inferior_ptid)); + + /* XXX: Target operation isn't lwp aware: replace pid with lwp */ + inferior_ptid = BUILD_LWP (0, lwpid); + target_fetch_registers (-1); fill_gregset (gregset, -1); do_cleanups (old_chain); |
