From owner-freebsd-current Mon Feb 11 18:55:48 2002 Delivered-To: freebsd-current@freebsd.org Received: from newman2.bestweb.net (newman2.bestweb.net [209.94.102.67]) by hub.freebsd.org (Postfix) with ESMTP id 3708737B483 for ; Mon, 11 Feb 2002 18:17:00 -0800 (PST) Received: from okeeffe.bestweb.net (okeefe.bestweb.net [209.94.100.110]) by newman2.bestweb.net (Postfix) with ESMTP id 7B1AC23171; Mon, 11 Feb 2002 21:16:47 -0500 (EST) Received: by okeeffe.bestweb.net (Postfix, from userid 0) id C9C4C9EE51; Mon, 11 Feb 2002 21:11:52 -0500 (EST) Date: Thu, 7 Feb 2002 17:50:56 -0800 (PST) From: Julian Elischer To: Andrew Gallatin Cc: Jake Burkholder , current@FreeBSD.ORG Subject: Re: Non 386 testers REALLY NEEDED Message-Id: <20020212021152.C9C4C9EE51@okeeffe.bestweb.net> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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