From octave-maintainers-request at bevo dot che dot wisc dot edu Fri May 15 16:31:25 1998 Subject: Question From: "John W. Eaton" To: Chuck Robey Cc: octave-maintainers at bevo dot che dot wisc dot edu Date: Fri, 15 May 1998 16:28:17 -0500 (CDT) On 15-May-1998, Chuck Robey wrote: | I just got around to actually running a new octave script on my newly | ported 2.0.12, and I saw it was core-dumping on startup. The specific | point it core-dumps (with a bus error) on is in the GNU stdc++ header | file bastring.h, line 69: | | charT* data () { return reinterpret_cast(this + 1); } | charT& operator[] (size_t s) { return data () [s]; } | charT* grab () { if (selfish) return clone (); ++ref; return data (); } | void release () { if (--ref == 0) delete this; } <== HERE | | inline static void * operator new (size_t, size_t); | inline static Rep* create (size_t); | | This seems to me to be kicked off from octave.cc line 414, where: | | initialize_error_handlers (); | | initialize_globals (argv[0]); <== HERE | | initialize_pathsearch (); | | initialize_globals is supposed to be called with a string class | argument, not just any string, isn't it? You're casting argv[0] as a | class string, but it's a simple C string, right? I'm not totally at | home with c++, so I can't be trusted on this, but it seems you want a | constructor here ... I did check, and argv[0] is a pointer to a good | full octave path. The compiler is supposed to insert the string constructor automatically. I'd suspect that at least that part is correct. | I can and will perform any tests you can imagine, and would in fact be | pleased to work off any guesses you can come up with. The platform is | FreeBSD-current, using gcc 2.7.2.1. My guess is that the copy of libstdc++ you have is out of sync with the version of the compiler or include files that you used to build Octave. jwe