From maintainers-request at octave dot org Mon Nov 7 17:10:55 2005 Subject: fc4 problem with trace From: Paul Kienzle To: maintainers at octave dot org Date: Mon, 7 Nov 2005 18:09:35 -0500 The version of gcc I'm using is the latest update from FC4 [pkienzle at dave miscellaneous]$ yum info gcc Setting up repositories Reading repository metadata in from local files Installed Packages Name : gcc Arch : i386 Version: 4.0.1 Release: 4.fc4 Size : 5.0 M Repo : installed Summary: The GNU cc and gcc C compilers. Description: The gcc package includes the cc and gcc GNU compilers for compiling C code. I find there is some flakiness with this box, such as errors from the C compiler being replaced by \hat a, and \hat a showing up on some man pages. I have a trace of the code prior to the segfault if that helps. - Paul 272 if (ok) switch (command[3]) { 309 if (debug) 331 octave_value_list evalargs; 332 evalargs(1) = "senderror(lasterr);"; 93 octave_value& operator () (int n) { return elem (n); } 283 if (rep != a.rep) 285 if (--rep->count == 0) 288 rep = a.rep; 289 rep->count++; 332 evalargs(1) = "senderror(lasterr);"; 333 evalargs(0) = context; 93 octave_value& operator () (int n) { return elem (n); } 283 if (rep != a.rep) 285 if (--rep->count == 0) 286 delete rep; 288 rep = a.rep; 289 rep->count++; 333 evalargs(0) = context; 450 static pool_type _S_pool; 334 octave_value_list fret = feval("eval",evalargs,0); 450 static pool_type _S_pool; 278 { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } 225 if (__builtin_expect(this != &_S_empty_rep(), false)) 227 if (__gnu_cxx::__exchange_and_add(&this->_M_refcount, -1) <= 0) 228 _M_destroy(__a); 338 STATUS("done command"); 59 ~string_vector (void) { } 450 static pool_type _S_pool; 273 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 109 { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage 122 if (__p) 59 ~string_vector (void) { } 450 static pool_type _S_pool; 273 { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, 109 { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage 122 if (__p) 123 _M_impl.deallocate(__p, __n); Program received signal SIGSEGV, Segmentation fault. 0x00925e3b in __gnu_cxx::__pool::_M_reclaim_block () from /usr/lib/libstdc++.so.6 (gdb) bt #0 0x00925e3b in __gnu_cxx::__pool::_M_reclaim_block () from /usr/lib/libstdc++.so.6 #1 0x00b07b2f in __gnu_cxx::__mt_alloc >::deallocate ( this=0xbf8cfe44, __p=0x919f538, __n=16) at /usr/lib/gcc/i386-redhat-linux/4.0.1/../../../../include/c++/4.0.1/ext/mt_allocator.h:746 #2 0x00b05083 in process_commands (channel=8) at /usr/lib/gcc/i386-redhat-linux/4.0.1/../../../../include/c++/4.0.1/bits/stl_vector.h:123 #3 0x00b06aa7 in Flisten (args= at 0x90f6008) at listen.cc:707 #4 0x00f57e14 in octave_builtin::do_multi_index_op (this=0x90ba220, nargout=0, args= at 0x90f6008) at ov-builtin.cc:124 #5 0x00f589e2 in octave_builtin::subsref (this=0x90ba220, type= at 0x91a6a5c, idx=@0xbf8d02a8, nargout=0) at ov-builtin.cc:72 #6 0x00f3baaa in octave_value::subsref (this=0xbf8d02b8, type= at 0x91a6a5c, idx=@0xbf8d02a8, nargout=0) at ov.cc:837 #7 0x01029399 in tree_index_expression::rvalue (this=0x91a6a38, nargout=0) at pt-idx.cc:352 #8 0x0104fae4 in tree_statement::eval (this=0x91b0bc0, silent=false, nargout=0, in_function_body=false) at pt-stmt.cc:137 #9 0x01050512 in tree_statement_list::eval (this=0x91a6ad8, silent=false, nargout=0) at pt-stmt.cc:172 #10 0x00eae3f4 in main_loop (fun_to_call= at 0x131d51c) at toplev.cc:165 #11 0x011d0a04 in octave_main (argc=1, argv=0xbf8d06c4, embedded=0) at octave.cc:622 #12 0x08048621 in main (argc=1, argv=0xbf8d06c4) at main.c:36 (gdb) up #1 0x00b07b2f in __gnu_cxx::__mt_alloc >::deallocate ( this=0xbf8cfe44, __p=0x919f538, __n=16) at /usr/lib/gcc/i386-redhat-linux/4.0.1/../../../../include/c++/4.0.1/ext/mt_allocator.h:746 746 __pool._M_reclaim_block(reinterpret_cast(__p), __bytes); (gdb) p __p $4 = (octave_value *) 0x919f538 (gdb) up #2 0x00b05083 in process_commands (channel=8) at /usr/lib/gcc/i386-redhat-linux/4.0.1/../../../../include/c++/4.0.1/bits/stl_vector.h:123 123 _M_impl.deallocate(__p, __n); (gdb) p fret $1 = {static allocator = {head = 0x0, grow_size = 256, item_size = 32}, data = { >> = { _M_impl = {> = {<__gnu_cxx::__mt_alloc >> = {<__gnu_cxx::__mt_alloc_base> = {}, }, }, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, }, names = {, std::allocator > >> = {_vptr.Array = 0x1308c00, rep = 0x877e2a8, dimensions = {rep = 0x877e2b8}, idx = 0x0, idx_count = 0}, }} gdb) p evalargs $2 = {static allocator = {head = 0x0, grow_size = 256, item_size = 32}, data = { >> = { _M_impl = {> = {<__gnu_cxx::__mt_alloc >> = {<__gnu_cxx::__mt_alloc_base> = {}, }, }, _M_start = 0x919f538, _M_finish = 0x919f548, _M_end_of_storage = 0x919f548}}, }, names = {, std::allocator > >> = {_vptr.Array = 0x1308c00, rep = 0x91a6ae8, dimensions = {rep = 0x91a6ac8}, idx = 0x0, idx_count = 0}, }}