From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C0BAE3858D1E; Tue, 31 Oct 2023 19:58:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C0BAE3858D1E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1698782330; bh=Q6J2hW0yrtnWvshzWVDg7ZGsVHIg9AJdXdnLRnOiQaI=; h=From:To:Subject:Date:From; b=JdW+uux0ATvAhqwzjBfaY0l5K5wsWCb8oLrYwBzwFulWlI75en4Ryh18MZMefXUJG c2Vp9g6/QhhkFkt+d1BmAmRHC/3LEpP5LdOVKibm8iKMLOUcoo+2nfGrHgwLGwh8aV wDnXeGDkF8x5/Zerkl0yn73WpGdwR7zyqWSft8vA= From: "josopait at goopax dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug libbacktrace/112322] New: std::stacktrace fails Date: Tue, 31 Oct 2023 19:58:50 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libbacktrace X-Bugzilla-Version: 12.3.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: josopait at goopax dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: 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: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D112322 Bug ID: 112322 Summary: std::stacktrace fails Product: gcc Version: 12.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libbacktrace Assignee: unassigned at gcc dot gnu.org Reporter: josopait at goopax dot com CC: ian at gcc dot gnu.org Target Milestone: --- I installed gcc on gentoo linux: EXTRA_ECONF=3D"--enable-libstdcxx-backtrace=3Dyes" emerge gcc and compiled the following program: #include #include int main() { std::cout << std::stacktrace::current() << std::endl; } $ g++-13 -g -std=3Dc++23 a.cpp -o a -lstdc++_libbacktrace When compiled with GCC 13 or GCC 14, the program output is weird: $ ./a=20 0# at :32764 1# at :32764 2# at :32764 3# at :32764 4#=20 The number 32764 changes randomly between program calls, in the range 32764= .. 32767. When compiled with GCC 12, the program crashes with a segmentation fault: (gdb) bt #0 0x0000000000000000 in ?? () #1 0x000055555555ad41 in elf_nodebug (state=3D, pc=3D, callback=3D, data=3D, error_callback=3D= ) at elf.c:585 #2 elf_nodebug (state=3D, pc=3D, callback=3D= , error_callback=3D, data=3D) at elf.c:565 #3 0x0000555555557c0f in std::stacktrace_entry::_M_get_info (this=3D0x55555557e2b0, __desc=3D0x7fffffffdb60, __file=3D0x7fffffffdb80, __line=3D0x7fffffffdb5c) at /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/stacktrace:191 #4 0x0000555555557db2 in std::operator<< (__os=3D..., __f=3D...) at /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/stacktrace:722 #5 0x00005555555585ce in std::operator<< > (__os=3D..., __st=3D...) at /usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/stacktrace:737 #6 0x0000555555557492 in main () at a.cpp:8 Here, parameter `state` of function elf_nodebug points to: (gdb) p *__state $10 =3D {filename =3D 0x0, threaded =3D 1, lock =3D 0x0, fileline_fn =3D 0x= 55555555a5f0 , fileline_data =3D 0x0, syminfo_fn =3D 0x55555555a5d0 , syminfo_data =3D 0x0, fileline_initialization_failed =3D 0, lock_alloc =3D = 0, freelist =3D 0x7ffff7fc4048} and error_callback is NULL, which causes the segmentation fault.=