From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14237 invoked by alias); 6 Jun 2003 20:02:22 -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 14080 invoked from network); 6 Jun 2003 20:02:20 -0000 Received: from unknown (HELO localhost.redhat.com) (207.219.125.131) by sources.redhat.com with SMTP; 6 Jun 2003 20:02:20 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 72A672B5F for ; Fri, 6 Jun 2003 16:02:11 -0400 (EDT) Message-ID: <3EE0F343.70807@redhat.com> Date: Fri, 06 Jun 2003 20:02:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030223 X-Accept-Language: en-us, en MIME-Version: 1.0 To: gdb@sources.redhat.com Subject: multiple frame/register caches (or what isn't in GDB 6) Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-06/txt/msg00084.txt.bz2 Since GDB 6 is looming large, its probably time to think about what to not try and squeese into that release. While the on-going architectural changes have many potential benefits, one more immediate and tangable addition is per-thread frame/register caches. At present, when the user switches threads, GDB discards all local state (register cache, all frames, ...). The plan is for GDB to instead maintain per-thread register/frame caches that are only flushed when the target changes. For GUI environments, which like to switch between and display lots of threads, this should be a very big win. Anyway, to give this an update. The architecture methods are now [almost] all parameterized with an explicit frame/regcache, and that makes the addition of multiple active register/frame caches to core GDB just that much easier - the problem of architecture specific code indirectly manipulating global state is eliminated (see read_pc_pid). The remaining obvious problems are of course read_pc_pid, and the target side supply_register. So, don't expect this in GDB 6 :-) enjoy, Andrew