From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16096 invoked by alias); 25 Jan 2011 17:06:13 -0000 Received: (qmail 16044 invoked by uid 22791); 25 Jan 2011 17:06:12 -0000 X-SWARE-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,TW_EG,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; Tue, 25 Jan 2011 17:06:07 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id p0PH658B004409 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 25 Jan 2011 12:06:05 -0500 Received: from host1.dyn.jankratochvil.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p0PH63jC017008 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 25 Jan 2011 12:06:05 -0500 Received: from host1.dyn.jankratochvil.net (localhost [127.0.0.1]) by host1.dyn.jankratochvil.net (8.14.4/8.14.4) with ESMTP id p0PH63bs008249 for ; Tue, 25 Jan 2011 18:06:03 +0100 Received: (from jkratoch@localhost) by host1.dyn.jankratochvil.net (8.14.4/8.14.4/Submit) id p0PH63Q2008248 for gdb-patches@sourceware.org; Tue, 25 Jan 2011 18:06:03 +0100 Date: Tue, 25 Jan 2011 17:26:00 -0000 From: Jan Kratochvil To: gdb-patches@sourceware.org Subject: [patch] Fix `info addr' for complex DWARF Message-ID: <20110125170602.GA8132@host1.dyn.jankratochvil.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes 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-01/txt/msg00502.txt.bz2 Hi, readelf says: <68> DW_AT_name : _s <70> DW_AT_location : 2 byte block: 91 4c (DW_OP_fbreg: -52) GDB HEAD says: (gdb) info addr _s Symbol "_s" is a complex DWARF expression: 1: DW_OP_fbreg 18446744073709551564 . patched GDB HEAD sasys: -> Symbol "_s" is a complex DWARF expression: 1: DW_OP_fbreg -52 . No regressions on {x86_64,x86_64-m32,i686}-fedora14-linux-gnu. I made only a brief overlook and fixed those sleb128 I found. I will check it in in some time. Thanks, Jan gdb/ 2011-01-25 Jan Kratochvil * dwarf2loc.c (disassemble_dwarf_expression) : Use L and plongest. (disassemble_dwarf_expression) : Drop variable offset, use L and plongest. (disassemble_dwarf_expression) : Use L and plongest. --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -2440,27 +2440,23 @@ disassemble_dwarf_expression (struct ui_file *stream, case DW_OP_breg29: case DW_OP_breg30: case DW_OP_breg31: - data = read_sleb128 (data, end, &ul); - fprintf_filtered (stream, " %s [$%s]", pulongest (ul), + data = read_sleb128 (data, end, &l); + fprintf_filtered (stream, " %s [$%s]", plongest (l), gdbarch_register_name (arch, op - DW_OP_breg0)); break; case DW_OP_bregx: - { - ULONGEST offset; - - data = read_uleb128 (data, end, &ul); - data = read_sleb128 (data, end, &offset); - fprintf_filtered (stream, " register %s [$%s] offset %s", - pulongest (ul), - gdbarch_register_name (arch, (int) ul), - pulongest (offset)); - } + data = read_uleb128 (data, end, &ul); + data = read_sleb128 (data, end, &l); + fprintf_filtered (stream, " register %s [$%s] offset %s", + pulongest (ul), + gdbarch_register_name (arch, (int) ul), + plongest (l)); break; case DW_OP_fbreg: - data = read_sleb128 (data, end, &ul); - fprintf_filtered (stream, " %s", pulongest (ul)); + data = read_sleb128 (data, end, &l); + fprintf_filtered (stream, " %s", plongest (l)); break; case DW_OP_xderef_size: