summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c')
-rw-r--r--gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
index fdfc6a3..8a91d97 100644
--- a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
+++ b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
@@ -201,8 +201,12 @@ static struct proc *
curProc ()
{
struct proc *p;
- CORE_ADDR addr = pcpu + PCPU_OFFSET (curproc);
+ struct thread *td;
+ CORE_ADDR addr = pcpu + PCPU_OFFSET (curthread);
+ if (kvread (addr, &td))
+ error ("cannot read thread pointer at %x\n", addr);
+ addr = (CORE_ADDR)td->td_proc;
if (kvread (addr, &p))
error ("cannot read proc pointer at %x\n", addr);
return p;
@@ -380,13 +384,13 @@ static void
get_kcore_registers (regno)
int regno;
{
- struct user *uaddr;
+ struct pcb *pcbaddr;
/* find the pcb for the current process */
- if (cur_proc == NULL || kvread (&cur_proc->p_addr, &uaddr))
+ if (cur_proc == NULL || kvread (&cur_proc->p_thread.td_pcb, &pcbaddr)) /* XXXKSE */
error ("cannot read u area ptr for proc at %#x", cur_proc);
- if (read_pcb (core_kd, (CORE_ADDR)&uaddr->u_pcb) < 0)
- error ("cannot read pcb at %#x", &uaddr->u_pcb);
+ if (read_pcb (core_kd, (CORE_ADDR)pcbaddr) < 0)
+ error ("cannot read pcb at %#x", pcbaddr);
}
static void
OpenPOWER on IntegriCloud