summaryrefslogtreecommitdiff
path: root/gdb/bsd-kvm.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2004-06-27 15:56:20 +0000
committerMark Kettenis <kettenis@gnu.org>2004-06-27 15:56:20 +0000
commit7b656ebb5f460ea955f953e1eb1d5ddb4e00afa8 (patch)
treef77c1dd96e3527fac475d3a029512c39fd12fbfb /gdb/bsd-kvm.c
parent52c15e531ea0c9d78aae5197b3c8683770640faa (diff)
downloadgdb-7b656ebb5f460ea955f953e1eb1d5ddb4e00afa8.tar.gz
* bsd-kvm.c (bsd_kvm_fetch_registers): Directly return after
fetching from BSD_KVM_PADDR. Correctly lookup address for "_thread0".
Diffstat (limited to 'gdb/bsd-kvm.c')
-rw-r--r--gdb/bsd-kvm.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gdb/bsd-kvm.c b/gdb/bsd-kvm.c
index 37fc2b48a6a..a037f84c6a4 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);