summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-02-08 03:19:56 +0000
committerpeter <peter@FreeBSD.org>2002-02-08 03:19:56 +0000
commit67d2168b444f70d939b6693cd25c62f2c9c5cfca (patch)
tree5b4dc0097c2d68fe94a829a88c1d760362d756c7 /gnu
parent58efc3d4e693a58ea1f381cf433e3bc80f81c327 (diff)
downloadFreeBSD-src-67d2168b444f70d939b6693cd25c62f2c9c5cfca.zip
FreeBSD-src-67d2168b444f70d939b6693cd25c62f2c9c5cfca.tar.gz
Make this part compile and try and use the p_threads tailq. It might work
but I am not sure, I haven't been able to compile the rest of gdb yet.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c9
-rw-r--r--gnu/usr.bin/binutils/gdb/kvm-fbsd.c9
2 files changed, 14 insertions, 4 deletions
diff --git a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
index f5aab1a..241b876 100644
--- a/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
+++ b/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
@@ -387,10 +387,15 @@ get_kcore_registers (regno)
int regno;
{
struct pcb *pcbaddr;
+ struct thread *mainthread;
/* find the pcb for the current process */
- if (cur_proc == NULL || kvread (&cur_proc->p_thread.td_pcb, &pcbaddr)) /* XXXKSE */
- error ("cannot read u area ptr for proc at %#x", cur_proc);
+ if (cur_proc == NULL)
+ error ("get_kcore_registers no proc");
+ if (kvread (TAILQ_FIRST(&cur_proc->p_threads), &mainthread)) /* XXXKSE */
+ error ("cannot read main thread for proc at %#x", cur_proc);
+ if (kvread (&mainthread->td_pcb, &pcbaddr)) /* XXXKSE */
+ error ("cannot read pcb pointer for proc at %#x", cur_proc);
if (read_pcb (core_kd, (CORE_ADDR)pcbaddr) < 0)
error ("cannot read pcb at %#x", pcbaddr);
}
diff --git a/gnu/usr.bin/binutils/gdb/kvm-fbsd.c b/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
index f5aab1a..241b876 100644
--- a/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
+++ b/gnu/usr.bin/binutils/gdb/kvm-fbsd.c
@@ -387,10 +387,15 @@ get_kcore_registers (regno)
int regno;
{
struct pcb *pcbaddr;
+ struct thread *mainthread;
/* find the pcb for the current process */
- if (cur_proc == NULL || kvread (&cur_proc->p_thread.td_pcb, &pcbaddr)) /* XXXKSE */
- error ("cannot read u area ptr for proc at %#x", cur_proc);
+ if (cur_proc == NULL)
+ error ("get_kcore_registers no proc");
+ if (kvread (TAILQ_FIRST(&cur_proc->p_threads), &mainthread)) /* XXXKSE */
+ error ("cannot read main thread for proc at %#x", cur_proc);
+ if (kvread (&mainthread->td_pcb, &pcbaddr)) /* XXXKSE */
+ error ("cannot read pcb pointer for proc at %#x", cur_proc);
if (read_pcb (core_kd, (CORE_ADDR)pcbaddr) < 0)
error ("cannot read pcb at %#x", pcbaddr);
}
OpenPOWER on IntegriCloud