From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20245 invoked by alias); 26 Oct 2004 09:32:40 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 20229 invoked from network); 26 Oct 2004 09:32:37 -0000 Received: from unknown (HELO svr68.ehostpros.com) (67.15.48.48) by sourceware.org with SMTP; 26 Oct 2004 09:32:37 -0000 Received: from [61.11.18.135] (helo=pythagoras) by svr68.ehostpros.com with esmtpsa (TLSv1:RC4-MD5:128) (Exim 4.43) id 1CMNgw-0007Cq-Aa; Tue, 26 Oct 2004 02:32:35 -0700 From: "Amit S. Kale" Organization: LinSysSoft Technologies Pvt Ltd To: Mark Kettenis Subject: Re: kgdb support for gdb: patch 1 Date: Thu, 28 Oct 2004 10:56:00 -0000 User-Agent: KMail/1.5 Cc: gdb@sources.redhat.com References: <200410211821.08680.amitkale@linsyssoft.com> <200410211722.i9LHM4in000841@elgar.sibelius.xs4all.nl> In-Reply-To: <200410211722.i9LHM4in000841@elgar.sibelius.xs4all.nl> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_elhfBtUIzFmLKad" Message-Id: <200410261501.10647.amitkale@linsyssoft.com> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - svr68.ehostpros.com X-AntiAbuse: Original Domain - sources.redhat.com X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - linsyssoft.com X-Source: X-Source-Args: X-Source-Dir: X-SW-Source: 2004-10/txt/msg00418.txt.bz2 --Boundary-00=_elhfBtUIzFmLKad Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 1911 Sorry about the compile error. I have done the changes you have suggested below. Here is a new patch. -Amit On Thursday 21 Oct 2004 10:52 pm, Mark Kettenis wrote: > From: "Amit S. Kale" > Date: Thu, 21 Oct 2004 18:21:08 +0530 > > Hi, > > I haven't added any support for detecting kernel osabi > automatically. Detecting it with present kernel binary structure > is rather shaky. It's safer to let users run the command "set osabi > Linux-kernel". > > Fair enough. Indeed it seems that vmlinux is a fairly standard static > ELF executable. > > I'll be later sending more patches. > > Please review it and let me know if it's ok for inclusion in gdb. > > Of course it isn't, since this can't compile ;-). You seem to be in > limbo betwen LINUXKERNEL and LINUX_KERNEL. Please choose the variant > *with* the underscore. > > Anyway, I think for the kernel you shouldn't use the Linux register > cache layout, bur rather the normal register layout. The Linux > register cache includes the "orig_eax" pseudo register that is > implemented by the kernel. My guess is that the kernel itself doesn't > have it. I'm not completely sure though, but unless you can motivate > why you do need "orig_eax" please remove these lines: > > + set_gdbarch_num_regs (gdbarch, I386_LINUX_NUM_REGS); > + set_gdbarch_register_name (gdbarch, i386_linux_register_name); > + set_gdbarch_register_reggroup_p (gdbarch, > i386_linux_register_reggroup_p); > > These lines will need adjustments too: > > + tdep->gregset_reg_offset = i386_linux_gregset_reg_offset; > + tdep->gregset_num_regs = ARRAY_SIZE (i386_linux_gregset_reg_offset); > + tdep->sizeof_gregset = 17 * 4; > > Setting tdep->gregset_num_regs to I386_NUM_GREGS should be OK. > > Apart from that, you'll also need to provide a ChangeLog. > > Can you post an update patch? > > Cheers, > > Mark --Boundary-00=_elhfBtUIzFmLKad Content-Type: text/x-diff; charset="utf-8"; name="lk.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="lk.patch" Content-length: 2693 Index: gdb/gdb/i386-linux-tdep.c =================================================================== --- gdb.orig/gdb/i386-linux-tdep.c 2004-08-07 02:28:28.000000000 +0530 +++ gdb/gdb/i386-linux-tdep.c 2004-10-26 14:59:29.000000000 +0530 @@ -27,6 +27,7 @@ #include "inferior.h" #include "osabi.h" #include "reggroups.h" +#include "elf-bfd.h" #include "gdb_string.h" @@ -416,6 +417,25 @@ set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); } +static void +i386_linux_kernel_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + + /* Linux Kernel uses ELF format for vmlinux file. */ + i386_elf_init_abi (info, gdbarch); + + /* We can use the register offsets used for linux applications. Only + * first 16 elements of the array will be used for kernel. Offsets of those + * are identical for applications and kernel. */ + tdep->gregset_reg_offset = i386_linux_gregset_reg_offset; + tdep->gregset_num_regs = I386_NUM_GREGS; + tdep->sizeof_gregset = I386_NUM_GREGS * 4; + + tdep->jb_pc_offset = 20; /* From . */ + +} + /* Provide a prototype to silence -Wmissing-prototypes. */ extern void _initialize_i386_linux_tdep (void); @@ -424,4 +444,6 @@ { gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LINUX, i386_linux_init_abi); + gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LINUX_KERNEL, + i386_linux_kernel_init_abi); } Index: gdb/gdb/defs.h =================================================================== --- gdb.orig/gdb/defs.h 2004-10-12 15:36:14.000000000 +0530 +++ gdb/gdb/defs.h 2004-10-26 14:46:27.000000000 +0530 @@ -1031,6 +1031,7 @@ GDB_OSABI_SOLARIS, GDB_OSABI_OSF1, GDB_OSABI_LINUX, + GDB_OSABI_LINUX_KERNEL, GDB_OSABI_FREEBSD_AOUT, GDB_OSABI_FREEBSD_ELF, GDB_OSABI_NETBSD_AOUT, Index: gdb/gdb/osabi.c =================================================================== --- gdb.orig/gdb/osabi.c 2004-07-03 02:57:17.000000000 +0530 +++ gdb/gdb/osabi.c 2004-10-26 14:46:27.000000000 +0530 @@ -57,6 +57,7 @@ "Solaris", "OSF/1", "GNU/Linux", + "Linux-kernel", "FreeBSD a.out", "FreeBSD ELF", "NetBSD a.out", Index: gdb/gdb/ChangeLog =================================================================== --- gdb.orig/gdb/ChangeLog 2004-10-26 14:45:24.000000000 +0530 +++ gdb/gdb/ChangeLog 2004-10-26 14:57:25.000000000 +0530 @@ -1,3 +1,7 @@ +2004-10-26 Amit S. Kale + * i386-linux-tdep.c: Added a new osabi Linux-kernel for debugging + a remotely running linux kernel. + 2004-10-25 Andrew Cagney * NEWS: Add Changes since GDB 6.3 section. --Boundary-00=_elhfBtUIzFmLKad--