From d1c276c38304d61b17414a8f48dc29677a96ae80 Mon Sep 17 00:00:00 2001 From: Peter Wemm 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 be956977c37b2..d0d4cf43c0812 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.3