This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: bsd-kvm target, always a thread
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: pedro at codesourcery dot com
- Cc: gdb-patches at sourceware dot org
- Date: Sat, 9 Aug 2008 10:15:30 +0200 (CEST)
- Subject: Re: bsd-kvm target, always a thread
- References: <200808080420.05897.pedro@codesourcery.com>
> From: Pedro Alves <pedro@codesourcery.com>
> Date: Fri, 8 Aug 2008 04:20:04 +0100
>
> Hi,
>
> This patches makes the bsd-kvm target register a main thread.
>
> I've "tested" this on a x86 OpenBSD-4.3 VM, but I'm not qualified
> to do much more openbsd kernel debugging other than:
>
> (gdb) tar kvm
> #0 0x00000006 in ?? ()
> (gdb) info threads
> * 1 <kvm> 0x00000006 in ?? ()
>
> B.T.W, with GDB 6.3, which came with the distro I always get:
>
> (gdb) tar kvm
> #0 0xd034ee05 in ?? ()
>
> With HEAD I always get 0x00000006.
>
> Is this difference expected? Related to the recent change to
> build on 4.3?
Hmm, for some reason the .sf_eip got lost when I committed that code.
Fixed by the attached diff, which I committed.
(I'll send a seperate reply to discuss your diff).
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* i386obsd-nat.c (i386obsd_supply_pcb): Supply the right bytes for
the %eip register.
Index: i386obsd-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/i386obsd-nat.c,v
retrieving revision 1.12
diff -u -p -r1.12 i386obsd-nat.c
--- i386obsd-nat.c 6 Aug 2008 19:56:20 -0000 1.12
+++ i386obsd-nat.c 9 Aug 2008 07:58:54 -0000
@@ -78,7 +78,7 @@ i386obsd_supply_pcb (struct regcache *re
pcb->pcb_esp = pcb->pcb_ebp;
pcb->pcb_ebp = read_memory_integer(pcb->pcb_esp, 4);
sf.sf_eip = read_memory_integer(pcb->pcb_esp + 4, 4);
- regcache_raw_supply (regcache, I386_EIP_REGNUM, &sf);
+ regcache_raw_supply (regcache, I386_EIP_REGNUM, &sf.sf_eip);
}
regcache_raw_supply (regcache, I386_EBP_REGNUM, &pcb->pcb_ebp);