From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5282 invoked by alias); 15 Apr 2009 17:34:50 -0000 Received: (qmail 5260 invoked by uid 22791); 15 Apr 2009 17:34:47 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_22,MSGID_FROM_MTA_HEADER,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mtagate8.de.ibm.com (HELO mtagate8.de.ibm.com) (195.212.29.157) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 15 Apr 2009 17:34:41 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate8.de.ibm.com (8.14.3/8.13.8) with ESMTP id n3FHYAUU708102; Wed, 15 Apr 2009 17:34:10 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n3FHYAmG2400294; Wed, 15 Apr 2009 19:34:10 +0200 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n3FHY9AJ015864; Wed, 15 Apr 2009 19:34:09 +0200 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id n3FHY8Fv015852; Wed, 15 Apr 2009 19:34:08 +0200 Message-Id: <200904151734.n3FHY8Fv015852@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Wed, 15 Apr 2009 19:34:08 +0200 Subject: Re: [RFC] GDB ARIndex Linux rule cleanup To: eliz@gnu.org Date: Wed, 15 Apr 2009 17:34:00 -0000 From: "Ulrich Weigand" Cc: muller@ics.u-strasbg.fr, brobecker@adacore.com, gdb-patches@sourceware.org, gdb@sourceware.org In-Reply-To: <83tz4plx93.fsf@gnu.org> from "Eli Zaretskii" at Apr 15, 2009 07:03:52 PM MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-04/txt/msg00330.txt.bz2 Eli Zaretskii wrote: > > Eli Zaretskii wrote: > > > I think GDB's "target" is always the OS kernel, not the OS itself. > > > > > > The distinction FSF asks for is between the GNU/Linux as a whole > > > system, which includes all the main applications and libraries, and > > > Linux as the bare-bones OS. GDB targets the latter, not the former. > > > > Huh? I'd say a large part of what makes up a GDB target is unrelated > > to the OS kernel: > > - Processor properties (register names/types/groups) > > That's hardware, and as such, unrelated to our discussion. > > > - ABI elements (data types, function calling convention, stack unwinding, > > C++ ABI, platform-specific debug format details, ...) > > Which has nothing to do with GNU. > > > - Shared library support, thread support (those may depend on kernel > > details, but may also -in particular on Linux- depend on strictly > > user-space library-implemented details ...) > > That's not part of the ``target'', in the sense that we were talking > about. As the whole discussion started over a -tdep.c file, I was intending to refer to a "target architecture", i.e. a gdbarch structure (which also more or less corresponds to what the user specifies as --target= when configuring GDB). This struct does indeed contain all the elements I mention above; and my point was simply that its contents are influenced by the full target operating system (ABI, system libraries, kernel), and *not* solely the kernel. The word "target" is unfortunately quite overloaded; when referring to the "target stack", the situation is somewhat different, but even there I'd argue that, say, the "Linux native target" implements support for running GDB natively on the GNU/Linux operating system, not just the kernel (e.g. due to native thread and shared library support). > > If you were to write a program using a completely different user-space > > ABI, it might run just fine on the Linux kernel, but GDB configured > > for a -linux target would not really be able to successfully debug the > > program. > > We are talking about a specific file, not about the whole of GDB built > for native debugging. Yes, the ppc-linux-tdep.c file, which defines the gdbarch struct to be used when debugging an application built for GNU/Linux on the PowerPC platform, in either native, remote, or core file debugging mode. In fact, in this specific file, some elements of the gdbarch struct are clearly kernel-related (e.g. the ppc_linux_write_pc method to properly restart interrupted system calls, or the signal trampoline unwinders), some elements have nothing whatsoever to do with the kernel (e.g. the ppc_linux_memory_remove_breakpoint method that deals with the fact that ld.so on powerpc modifies code, or the ppc64_skip_trampoline_code method which recognizes linker-generated stubs, or the ppc64_linux_convert_from_func_ptr_addr method that interprets the function pointer ABI), and some could be considered either way (e.g. the core file register set definitions -- a core file may be generated by the kernel, but also other tools, including GDB itself). Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com