From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9138 invoked by alias); 1 Aug 2003 19:32:46 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 9129 invoked from network); 1 Aug 2003 19:32:45 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 1 Aug 2003 19:32:45 -0000 Received: from drow by nevyn.them.org with local (Exim 4.20 #1 (Debian)) id 19ifdt-0000fR-7y for ; Fri, 01 Aug 2003 15:32:45 -0400 Date: Fri, 01 Aug 2003 19:32:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: [rfa/6.0] Fix a thinko in dwarf2loc Message-ID: <20030801193245.GA2529@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.1i X-SW-Source: 2003-08/txt/msg00006.txt.bz2 Any variable with DW_OP_reg* requires a frame to read it - what symbol_read_needs_frame () really means is "is this variable meaningful when the program is not running". This would show up in the testsuite, but GCC doesn't tend to put locals in registers without optimization or register keywords everywhere. Symptom is that a watchpoint was not deleted when we left its scope, since we thought it was global. OK? -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer 2003-08-01 Daniel Jacobowitz * dwarf2loc.c (dwarf2_loc_desc_needs_frame): Variables in a register do need a frame. --- gdb-5.3.20030801/gdb/dwarf2loc.c.orig 2003-08-01 14:58:57.000000000 -0400 +++ gdb-5.3.20030801/gdb/dwarf2loc.c 2003-08-01 15:00:05.000000000 -0400 @@ -318,7 +318,7 @@ dwarf2_loc_desc_needs_frame (unsigned ch free_dwarf_expr_context (ctx); - return baton.needs_frame; + return baton.needs_frame || ctx->in_reg; } static void