From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1023 invoked by alias); 8 Mar 2003 14:26:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 971 invoked by uid 71); 8 Mar 2003 14:26:01 -0000 Resent-Date: 8 Mar 2003 14:26:01 -0000 Resent-Message-ID: <20030308142601.970.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, werner@almesberger.net Received: (qmail 851 invoked from network); 8 Mar 2003 14:23:58 -0000 Received: from unknown (HELO host.almesberger.net) (63.105.73.239) by 172.16.49.205 with SMTP; 8 Mar 2003 14:23:58 -0000 Received: from almesberger.net (vpnwa-home [10.200.0.2]) by host.almesberger.net (8.11.6/8.9.3) with ESMTP id h28ENsc27585 for ; Sat, 8 Mar 2003 06:23:54 -0800 Received: (from werner@localhost) by almesberger.net (8.11.6/8.11.6) id h28ENpq26818; Sat, 8 Mar 2003 11:23:51 -0300 Message-Id: <200303081423.h28ENpq26818@almesberger.net> Date: Sat, 08 Mar 2003 14:26:00 -0000 From: werner@almesberger.net To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: debug/10003: gcc -g mis-places low_pc of inlined functions X-SW-Source: 2003-03/txt/msg00401.txt.bz2 List-Id: >Number: 10003 >Category: debug >Synopsis: gcc -g mis-places low_pc of inlined functions >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 08 14:26:01 UTC 2003 >Closed-Date: >Last-Modified: >Originator: Werner Almesberger >Release: 3.3 20030303 (prerelease) >Organization: >Environment: System: Linux ar 2.4.18 #5 Mon Mar 18 09:25:24 ART 2002 i686 unknown Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: ./configure --prefix=/usr/local/gcc20030303/ --enable-languages=c >Description: This one it pretty nasty: if we place a breakpoint at an inlined function's low_pc, the arguments aren't even on the stack yet ! >How-To-Repeat: Example (with Red Hat's gcc 3.1 20011127 on ia32): $ cat <foo.c int xyz; static inline int foo(int bar) { label: xyz = bar; } void main(int argc) { foo(123); } EOF $ gcc -w -g foo.c # gcc 3.3: gcc -w -g -finline foo.c $ readelf -w a.out ... <2><4a>: Abbrev Number: 4 (DW_TAG_inlined_subroutine) DW_AT_abstract_origin: <68> DW_AT_low_pc : 0x80483a8 134513576 ... $ objdump -d a.out ... 08048398
: ... 80483a6: 29 c4 sub %eax,%esp 80483a8: c7 45 fc 7b 00 00 00 movl $0x7b,0xfffffffc(%ebp) 80483af: 8b 45 fc mov 0xfffffffc(%ebp),%eax 80483b2: a3 34 95 04 08 mov %eax,0x8049534 80483b7: c9 leave ... >Fix: Work-around: don't access arguments in inlined functions ? >Release-Note: >Audit-Trail: >Unformatted: