This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug other/34129] New: backtrace () requires malloc () during initialization
- From: "stephenc at cisco dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Nov 2007 22:34:32 -0000
- Subject: [Bug other/34129] New: backtrace () requires malloc () during initialization
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following stack shows backtrace () requiring malloc () when initializing.
This makes writing memory tools slightly problematic. In the example, the code
deadlocks in my malloc () during initialization:
#0 malloc (size=28) at example.cpp:17
#1 0x006821d8 in _dl_map_object_deps () from /lib/ld-linux.so.2
#2 0x00791159 in dl_open_worker () from /lib/tls/libc.so.6
#3 0x006830fe in _dl_catch_error () from /lib/ld-linux.so.2
#4 0x00791cb8 in _dl_open () from /lib/tls/libc.so.6
#5 0x0079304d in do_dlopen () from /lib/tls/libc.so.6
#6 0x006830fe in _dl_catch_error () from /lib/ld-linux.so.2
#7 0x0079312e in __libc_dlopen_mode () from /lib/tls/libc.so.6
#8 0x0076fdfa in init () from /lib/tls/libc.so.6
#9 0x0091dc8b in pthread_once () from /lib/tls/libpthread.so.0
#10 0x007700f9 in backtrace () from /lib/tls/libc.so.6
#11 0x080486ff in malloc (size=4) at example.cpp:29
#12 0x080487fc in main () at example.cpp:55
This appears to be an issue in newer versions (~3.4.6 and above). Older
versions do not appear to initialize in this manner (tested with 3.2.3).
--
Summary: backtrace () requires malloc () during initialization
Product: gcc
Version: 3.4.6
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: stephenc at cisco dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34129