From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3239 invoked by alias); 10 Apr 2003 18:01:41 -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 3225 invoked from network); 10 Apr 2003 18:01:40 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 10 Apr 2003 18:01:40 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h3AI1ee15952 for ; Thu, 10 Apr 2003 14:01:40 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h3AI1eJ22851 for ; Thu, 10 Apr 2003 14:01:40 -0400 Received: from localhost.redhat.com (romulus-int.sfbay.redhat.com [172.16.27.46]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h3AI1d629657 for ; Thu, 10 Apr 2003 14:01:39 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 2EF242C43F; Thu, 10 Apr 2003 14:06:02 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16021.45705.984700.779084@localhost.redhat.com> Date: Thu, 10 Apr 2003 18:01:00 -0000 To: drow@mvista.com Cc: Michael Elizabeth Chastain , gdb-patches@sources.redhat.com Subject: Re: RFA/dwarf: Fix the GCC 2.95.3 store.exp regression for multi-register variables In-Reply-To: <200304040641.h346fwf16003@duracef.shout.net> References: <200304040641.h346fwf16003@duracef.shout.net> X-SW-Source: 2003-04/txt/msg00208.txt.bz2 Michael Elizabeth Chastain writes: > My test bed says that this is okay. It fixes the regression in > store.exp with gcc 2.95.3 -gdwarf-2 (gcc 2.95.3 is the only compiler > that puts this particular struct into a register). And it doesn't > have any regressions with any gcc v2 or v3, dwarf-2 or stabs+, > on my native i686-pc-linux-gnu. > > I have another PR for this, gdb/1107, that comes with a source file > and an executable file. With this patch, gdb HEAD changes from > 'new bad behavior' back to 'same bad behavior as 5.3'. Specifically, > I have a structure which is in %ebx and %esi. gdb 5.3 prints values > from %ebx and %esp (the next register in 'info registers'). > gdb HEAD prints %ebx and something from god knows where, and > gdb HEAD + patch prints %ebx and %esp again. > > (I really hate it when gdb prints the wrong numbers!) > > With this patch gdb is better in the store.exp case and not any > worse in the gdb/1107 case. What the heck, here's a table: > > store.exp gdb/1107 > gdb 5.3 okay wrong > gdb HEAD wrong wrong > gdb HEAD + drow okay wrong > > So ... recommended for approval. If it goes in then we can maybe talk > about gdb/1107 some more. > > Michael C Daniel did you check this in? elena > > === > > 2003-03-12 Daniel Jacobowitz > > * dwarf2expr.h (struct dwarf_expr_context): Remove extra arguments > to read_reg and update its comment. Remove regnum member. > * dwarf2expr.c (execute_stack_op): Remove memaddr and expr_lval. > Don't call read_reg when setting in_reg. Call read_reg to get > the frame base if it's in a register. Return the register number > on the stack instead of in the context. Remove extra arguments > to read_reg. > * dwarf2loc.c (dwarf_expr_read_reg): Remove extra arguments. > (dwarf2_evaluate_loc_desc): Call value_from_register. Expect > the register number on the expression stack. > (needs_frame_read_reg): Remove extra arguments.