public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug sanitizer/61071] New: With certain configurations of variables on function's stack, when debugging 32bit binary compiled with '-fsanitize=address', some variables in gdb are printed out as '<optimized out>' despite passing '-O0 -ggdb3' in compilation switches.
@ 2014-05-06  5:31 athantor+gccbugzilla at athi dot pl
  2014-07-23  6:46 ` [Bug sanitizer/61071] Compiling with AddressSanitizer with 4.9 breaks printng some variables in gdb athantor+gccbugzilla at athi dot pl
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: athantor+gccbugzilla at athi dot pl @ 2014-05-06  5:31 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 4919 bytes --]

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61071

            Bug ID: 61071
           Summary: With certain configurations of variables on function's
                    stack, when debugging 32bit binary compiled with
                    '-fsanitize=address', some variables in gdb are
                    printed out as '<optimized out>' despite passing '-O0
                    -ggdb3' in compilation switches.
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: athantor+gccbugzilla at athi dot pl
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org

Created attachment 32739
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32739&action=edit
testcase

Description:
With certain configurations of variables on function's stack, when debugging
32bit binary compiled with '-fsanitize=address', some variables in gdb are
printed out as '<optimized out>' despite passing '-O0 -ggdb3' in compilation
switches.

Problem occurres (for me) only when debugging 32bit binary; same code in 64bit
works OK. It doesn't matter if I'm cross compiling it 64b→32b nor if I compile
it natively on i386 version of Arch.
It was working OK with gcc <4.9.

Additional info:
Linux kk 3.14.2-1-ARCH #1 SMP PREEMPT Sun Apr 27 11:28:44 CEST 2014 x86_64
GNU/Linux
gcc 4.9.0
gdb 7.7
glibc 2.19
binutils 2.24


Steps to reproduce:
1) Compile attached source file with
gcc -m32 -Wall -Wextra -Wno-unused-variable -fsanitize=address -ggdb3 -O0 -o
test test.c
2) gdb it with:
gdb --ex 'b main' --ex 'r' --ex 'p d' --ex 'q' ./test

If you'll compile with ASAN, gdb will show that variable 'd' is optimized out
despite '-O0' in gcc switches:
Breakpoint 1, main () at test.c:10
10 int d = 4;
$1 = <optimized out>


remove '-fsanitize=address' from switches and gdb works as it should (ignore
uninitialized value):
Breakpoint 1, main () at test.c:10
10 int d = 4;
$1 = 134513883


What's funny, if I'll remove zeroing of the 't' array or decrease its size to
36B, then gdb starts to print 'd' OK.

In both cases debug info about the 'd' variable seems to be present in the
binary:
<2><be>: Abbrev Number: 8 (DW_TAG_variable)
<bf> DW_AT_name : d
<c1> DW_AT_decl_file : 1
<c2> DW_AT_decl_line : 11
<c3> DW_AT_type : <0x53>
>From gcc-bugs-return-450627-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Tue May 06 06:11:58 2014
Return-Path: <gcc-bugs-return-450627-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 7114 invoked by alias); 6 May 2014 06:11:57 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 7076 invoked by uid 48); 6 May 2014 06:11:53 -0000
From: "wence at gmx dot li" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/61068] -O3 generates bad code (when tree-vectorize or inline-functions is on)
Date: Tue, 06 May 2014 06:11:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: target
X-Bugzilla-Version: 4.8.2
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: wence at gmx dot li
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: attachments.isobsolete attachments.created
Message-ID: <bug-61068-4-Kl5o3Y6PaJ@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-61068-4@http.gcc.gnu.org/bugzilla/>
References: <bug-61068-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-05/txt/msg00319.txt.bz2
Content-length: 553

http://gcc.gnu.org/bugzilla/show_bug.cgi?ida068

Lawrence Mitchell <wence at gmx dot li> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #32738|0                           |1
        is obsolete|                            |

--- Comment #4 from Lawrence Mitchell <wence at gmx dot li> ---
Created attachment 32740
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id2740&actioníit
updated preprocessed source (no double[][] -> (double *))


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-22  8:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-06  5:31 [Bug sanitizer/61071] New: With certain configurations of variables on function's stack, when debugging 32bit binary compiled with '-fsanitize=address', some variables in gdb are printed out as '<optimized out>' despite passing '-O0 -ggdb3' in compilation switches athantor+gccbugzilla at athi dot pl
2014-07-23  6:46 ` [Bug sanitizer/61071] Compiling with AddressSanitizer with 4.9 breaks printng some variables in gdb athantor+gccbugzilla at athi dot pl
2015-05-22  8:03 ` athantor+gccbugzilla at athi dot pl
2015-05-22  8:56 ` jakub at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).