From 5c7920c83b53e35568a5198b1c0619164d31ddf4 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 20 Sep 2001 06:31:23 +0000 Subject: Fix alpha gdb -k on "live" kernels. Use offsetof() instead of some evil hand-rolled macros to do the same thing. --- gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c index be95697..d0d4cf4 100644 --- a/gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c +++ b/gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c @@ -128,10 +128,17 @@ initial_pcb() * Therefore, just use proc0 and let the user set * some other context if they care about it. */ - addr = ksym_lookup("proc0paddr"); + addr = ksym_lookup("thread0"); if (kvread(addr, &val)) { - error("cannot read proc0paddr pointer at %x\n", addr); + error("cannot read thread0 pointer at %x\n", addr); val = 0; + } else { + /* Read the PCB address in proc structure. */ + addr = (CORE_ADDR)val + offsetof(struct thread, td_pcb); + if (kvread(addr, &val)) { + error("cannot read thread0->td_pcb pointer at %x\n", addr); + val = 0; + } } return ((CORE_ADDR)val); -- cgit v1.1