From 6f5e7ac63b7aef7efe41cee45c992ce0d0738a1b Mon Sep 17 00:00:00 2001 From: kettenis Date: Sun, 27 Jun 2004 15:56:18 +0000 Subject: [PATCH] * bsd-kvm.c (bsd_kvm_fetch_registers): Directly return after fetching from BSD_KVM_PADDR. Correctly lookup address for "_thread0". --- gdb/ChangeLog | 4 ++++ gdb/bsd-kvm.c | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 18891124c6..6df260c200 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2004-06-27 Mark Kettenis + * bsd-kvm.c (bsd_kvm_fetch_registers): Directly return after + fetching from BSD_KVM_PADDR. Correctly lookup address for + "_thread0". + * amd64fbsd-nat.c: Include and "bsd-kvm.h". (amd64fbsd_supply_pcb): New funcion. diff --git a/gdb/bsd-kvm.c b/gdb/bsd-kvm.c index 37fc2b48a6..a037f84c6a 100644 --- a/gdb/bsd-kvm.c +++ b/gdb/bsd-kvm.c @@ -128,7 +128,10 @@ bsd_kvm_fetch_registers (int regnum) struct nlist nl[2]; if (bsd_kvm_paddr) - bsd_kvm_fetch_pcb (bsd_kvm_paddr); + { + bsd_kvm_fetch_pcb (bsd_kvm_paddr); + return; + } /* On dumping core, BSD kernels store the faulting context (PCB) in the variable "dumppcb". */ @@ -185,8 +188,8 @@ bsd_kvm_fetch_registers (int regnum) struct pcb *paddr; /* Found thread0. */ - nl[1].n_value += offsetof (struct thread, td_pcb); - if (kvm_read (core_kd, nl[1].n_value, &paddr, sizeof paddr) == -1) + nl[0].n_value += offsetof (struct thread, td_pcb); + if (kvm_read (core_kd, nl[0].n_value, &paddr, sizeof paddr) == -1) error ("%s", kvm_geterr (core_kd)); bsd_kvm_fetch_pcb (paddr); -- 2.11.0