From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17802 invoked by alias); 14 Jul 2004 17:47:54 -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 17783 invoked from network); 14 Jul 2004 17:47:52 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 14 Jul 2004 17:47:52 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i6EHlqe1005945 for ; Wed, 14 Jul 2004 13:47:52 -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 i6EHlq032530; Wed, 14 Jul 2004 13:47:52 -0400 Received: from [172.16.50.27] (vpn50-27.rdu.redhat.com [172.16.50.27]) by pobox.corp.redhat.com (8.12.8/8.12.8) with ESMTP id i6EHlpPL029638; Wed, 14 Jul 2004 13:47:52 -0400 Subject: Re: dwarf2-frame.c question for maintainers From: "Martin M. Hunt" To: Andrew Cagney Cc: gdb@sources.redhat.com In-Reply-To: <40F56CCA.5080106@gnu.org> References: <1089749730.3026.18.camel@dragon> <40F56CCA.5080106@gnu.org> Content-Type: text/plain Organization: Red Hat Inc. Message-Id: <1089827266.3010.2.camel@dragon> Mime-Version: 1.0 Date: Wed, 14 Jul 2004 17:56:00 -0000 Content-Transfer-Encoding: 7bit X-SW-Source: 2004-07/txt/msg00139.txt.bz2 On Wed, 2004-07-14 at 10:26, Andrew Cagney wrote: > > I'm working on some dwarf2 fixes with kevinb. In > > dwarf2_build_frame_info(), Kevin added > > +unit.signed_addr_p = bfd_get_sign_extend_vma (unit.abfd); > > > > This is useful for fixing several bugs where addresses needed to be > > sign-extended. However, I found that read_reg() also needs to > > sign-extend its result. Passing a pointer to the CU all the way down to > > read_reg doesn't seem practical. > > > > I don't have any understanding of the overall structure of this code or > > where it is going. I can see several possibilities, including the > > obvious one; using a global. So how do I solve this to get the patch > > accepted? > > (The global is out :-) > > How come extract_typed_address, in read_reg, doesn't sign extend? I should have explained that. It does. However extract_typed_address is incorrect because it makes the invalid assumption that sizeof(address) == sizeof(register). So that has to go and be replaced with something like extract_signed_integer (buf, register_size (current_gdbarch, regnum)); > The MIPS (I'm assuming this is for the MIPS) has the dogma that _all_ > addresses (a.k.a. CORE_ADDRs) are _always_ sign extended. If you see a > non sign-extended address in the wild, try tracing it back to where it > was created. > > Andrew -- Martin M. Hunt Red Hat Inc.