From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 446 invoked by alias); 24 Aug 2011 19:31:33 -0000 Received: (qmail 437 invoked by uid 22791); 24 Aug 2011 19:31:31 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_CX,TW_XA X-Spam-Check-By: sourceware.org Received: from mail-wy0-f169.google.com (HELO mail-wy0-f169.google.com) (74.125.82.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 24 Aug 2011 19:31:16 +0000 Received: by wyi11 with SMTP id 11so1313879wyi.0 for ; Wed, 24 Aug 2011 12:31:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.221.129 with SMTP id r1mr549245wep.49.1314214274801; Wed, 24 Aug 2011 12:31:14 -0700 (PDT) Received: by 10.216.62.72 with HTTP; Wed, 24 Aug 2011 12:31:14 -0700 (PDT) Reply-To: noloader@gmail.com Date: Wed, 24 Aug 2011 19:31:00 -0000 Message-ID: Subject: Interpret object causing crash in __cxa_finalize (have core) From: Jeffrey Walton To: GDB Users List Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2011-08/txt/msg00103.txt.bz2 Hi All, I'm observing an intermittent crash during unloading of a shared object. The library and test harness were built with '-g3 -ggdb -O0', and 'ulimit -c unlimited', so I am able to get it under GDB. But I'm having problems interpreting what object is being problematic. $ gdb ... (gdb) file # loads OK (gdb) core core # loads OK (gdb) bt full ... #21 0x00002ba649808630 in __cxa_finalize (d=0x2ba64901c3d8) at cxa_finalize.c:56 check = cxafn = 0x6 cxaarg = 0xa46 f = 0x13925e0 funcs = 0x13924f0 (gdb) po 0x13925e0 evaluation of this expression requires the target program to be active Any ideas how to proceed? Thanks in advance, Jeff (gdb) bt full #0 0x00002ba649802a75 in *__GI_raise (sig=) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 pid = selftid = #1 0x00002ba6498065c0 in *__GI_abort () at abort.c:92 act = {__sigaction_handler = {sa_handler = 0x7fffecc59ff0, sa_sigaction = 0x7fffecc59ff0}, sa_mask = {__val = { 140737165762736, 140737165774648, 22, 47993198828606, 1, 4256528, 99, 47993198832910, 3, 140737165762734, 2, 47993198828632, 1, 47993198837551, 3, 140737165762746}}, sa_flags = 6, sa_restorer = 0x2ba649917f33} sigs = {__val = {32, 0 }} #2 0x00002ba64983c4fb in __libc_message (do_abort=, fmt=) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189 ap = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffecc5aa30, reg_save_area = 0x7fffecc5a940}} ap_copy = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffecc5aa30, reg_save_area = 0x7fffecc5a940}} fd = 3 on_2 = list = nlist = 1024 cp = written = false #3 0x00002ba6498465b6 in malloc_printerr (action=3, str=0x2ba649919cd8 "double free or corruption (!prev)", ptr=) at malloc.c:6266 buf = "00000000013a21c0" cp = 0x0 #4 0x00002ba64984ce83 in *__GI___libc_free (mem=) at malloc.c:3738 ar_ptr = 0x2ba649b4de40 p = 0x0 #5 0x0000000000470ac0 in __gnu_cxx::new_allocator > >::deallocate (this=0x83dfc0, __p=0x13a21c0) at /usr/include/c++/4.4/ext/new_allocator.h:95 No locals. #6 0x00000000004708ca in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_put_node (this=0x83dfc0, __p=0x13a21c0) at /usr/include/c++/4.4/bits/stl_tree.h:363 No locals. #7 0x0000000000470326 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_destroy_node ( this=0x83dfc0, __p=0x13a21c0) at /usr/include/c++/4.4/bits/stl_tree.h:409 No locals. #8 0x000000000046fc65 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a21c0) at /usr/include/c++/4.4/bits/stl_tree.h:972 __y = 0x0 #9 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a2140) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a2100 #10 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a2100) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a20c0 #11 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a20c0) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a2080 #12 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a2080) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a2040 #13 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a2040) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a2000 #14 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a2000) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a1fc0 #15 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a1fc0) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a1f80 #16 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a1f80) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a1f40 #17 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a1f40) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x13a1f00 #18 0x000000000046fc42 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase (this=0x83dfc0, __x=0x13a1f00) at /usr/include/c++/4.4/bits/stl_tree.h:970 __y = 0x83dfc0 #19 0x000000000046f7db in ~_Rb_tree (this=0x83dfc0, __in_chrg=) at /usr/include/c++/4.4/bits/stl_tree.h:614 No locals. #20 0x0000000000470c0a in ~map (this=0x83dfc0, __in_chrg=) at /usr/include/c++/4.4/bits/stl_map.h:87 No locals. #21 0x00002ba649808630 in __cxa_finalize (d=0x2ba64901c3d8) at cxa_finalize.c:56 check = cxafn = 0x6 cxaarg = 0xa46 f = 0x13925e0 funcs = 0x13924f0 #22 0x00002ba648c59076 in __do_global_dtors_aux () from lib/libesapi-c++.so No symbol table info available. #23 0x0000000000000000 in ?? () No symbol table info available. (gdb)