From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31577 invoked by alias); 25 Feb 2011 16:15:44 -0000 Received: (qmail 31497 invoked by uid 22791); 25 Feb 2011 16:15:41 -0000 X-SWARE-Spam-Status: No, hits=-6.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,TW_BJ,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 25 Feb 2011 16:15:32 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p1PGFIjt001362 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 25 Feb 2011 11:15:18 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p1PGFHmm031336; Fri, 25 Feb 2011 11:15:18 -0500 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p1PGFHbH014432; Fri, 25 Feb 2011 11:15:17 -0500 Received: by opsy.redhat.com (Postfix, from userid 500) id C1F6237994B; Fri, 25 Feb 2011 09:15:16 -0700 (MST) From: Tom Tromey To: Joel Brobecker Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 11/18] Add partition support. References: <1298569763-18784-1-git-send-email-brobecker@adacore.com> <1298569763-18784-12-git-send-email-brobecker@adacore.com> Date: Fri, 25 Feb 2011 16:17:00 -0000 In-Reply-To: <1298569763-18784-12-git-send-email-brobecker@adacore.com> (Joel Brobecker's message of "Thu, 24 Feb 2011 12:49:16 -0500") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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: 2011-02/txt/msg00772.txt.bz2 >>>>> "Joel" == Joel Brobecker writes: Joel> +/* We need to keep the symbols in each PD separate from the others. Joel> + One of the reasons is that 2 symbols with the same name are allowed to Joel> + coexist in 653 provided that these 2 symbols live in 2 separate PDs. Joel> + Another important reason is that virtual memory regions can overlap Joel> + between PDs, and one symbol address in a PD is not suitable in the Joel> + context of another PD. Joel> + Joel> + GDB maintains a global list of objfiles where the symbols can be found. Joel> + To achieve this separation, we simply maintain one such list per PD in Joel> + this module. At each PD change, we simply save the objfile list for Joel> + the current PD, and restore it for the new PD. The net effect is that Joel> + GDB will only recognize symbols in the current PD, and will complain if Joel> + a user tries to do any operation that needs symbols from other PDs. Joel> + Joel> + In practice, GDB maintains a few other global variables that also Joel> + need to be saved/restored, but the principle remains valid. Joel> + Joel> + If would have been slicker to actually maintain one list of objfiles Joel> + for all PDs and modify GDB to automatically switch to the right PD Joel> + when performing an operation such as inserting a BP in some code that's Joel> + in a different partition. This would probably not be such a great Joel> + improvment in terms of usability, but this would require a major Typo, "improvement". Thanks, Emacs! More importantly, why can't a PD be modeled using program- and address-spaces inside GDB? Tom