Date: Thu, 7 Feb 2002 17:50:56 -0800 (PST) From: Julian Elischer <julian@elischer.org> To: Andrew Gallatin <gallatin@cs.duke.edu> Cc: Jake Burkholder <jake@locore.ca>, current@FreeBSD.ORG Subject: Re: Non 386 testers REALLY NEEDED Message-ID: <20020212021152.C9C4C9EE51@okeeffe.bestweb.net>
next in thread | raw e-mail | index | archive | help
ok here's the fix that went into libkvm http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libkvm/kvm_proc.c.diff?r1=1.41&r2=1.42 basically you have to map in the thread structure separatly to the proc structure, using the first entry in the linked list of threads. Obviously this only works for a process with one thread but the program will need more help than that to handle more than one thread. kvread and KREAD are basically the same thing. basically you have read in teh thread structure and then read the pcb from there.. On Thu, 7 Feb 2002, Andrew Gallatin wrote: > > Julian Elischer writes: > > > > > > I've committed both the kernel diff and a libkvm diff that seems to work > > for me here. > > > > can you check it with the new -current again ? > > World breakage on alpha: > > usr/src/gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c: In function `set_proc_cmd': > /usr/src/gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c:393: structure has no member named `p_thread' > *** Error code 1 > > Stop in /usr/src/gnu/usr.bin/binutils/gdb. > *** Error code 1 > > > The following diff fixes it, but isn't likely to be correct. How > should kvm be finding the pcb based on the process? > > Drew > > > Index: kvm-fbsd.c > =================================================================== > RCS file: /home/ncvs/src/gnu/usr.bin/binutils/gdb/alpha/kvm-fbsd.c,v > retrieving revision 1.6 > diff -u -r1.6 kvm-fbsd.c > --- kvm-fbsd.c 13 Oct 2001 04:38:46 -0000 1.6 > +++ kvm-fbsd.c 8 Feb 2002 01:39:32 -0000 > @@ -390,7 +390,7 @@ > addr = (CORE_ADDR)parse_and_eval_address(arg); > > /* Read the PCB address in proc structure. */ > - addr += (int) &((struct proc *)0)->p_thread.td_pcb; > + addr += (int) &((struct proc *)0)->p_xxthread.td_pcb; > if (kvread(addr, &val)) > error("cannot read pcb ptr"); > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020212021152.C9C4C9EE51>