On Wed, Mar 26, 2003 at 02:57:23PM +0200, Tommi Hassinen wrote: > If there's any problems other than MPQC-related ones, please just report > them to me and I'll fix them (the modified code uses void pointers and I > might have made some mistakes there since there's no type checking). well, mpqc segfaults, as you predicted: writing MPQC-input file /tmp/mpqc0000.in using ProcMessageGrp as MessageGroup... using PthreadThreadGrp as ThreadGroup... Reading file /usr/share/mpqc/atominfo.kv. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 12855)] 0x88402626 in ?? () (gdb) bt #0 0x88402626 in ?? () #1 0x40cdcba2 in sc::StringKeyVal::key_value(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #2 0x40ce0df1 in sc::PrefixKeyVal::key_value(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #3 0x40cd4205 in sc::KeyVal::key_describedclassvalue(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #4 0x40cd44ae in sc::KeyVal::describedclassvalue(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #5 0x40a2c9e0 in sc::MolecularEnergy::MolecularEnergy(sc::Ref<sc::KeyVal> const&) () from /usr/lib/libSCmolecule.so.4 #6 0x4083884e in sc::Wavefunction::Wavefunction(sc::Ref<sc::KeyVal> const&) () from /usr/lib/libSCwfn.so.4 #7 0x408463d9 in sc::OneBodyWavefunction::OneBodyWavefunction(sc::Ref<sc::KeyVal> const&) () from /usr/lib/libSCwfn.so.4 #8 0x407b76b7 in sc::SCF::SCF(sc::Ref<sc::KeyVal> const&) () from /usr/lib/libSCscf.so.4 #9 0x407c6dd2 in sc::CLSCF::CLSCF(sc::Ref<sc::KeyVal> const&) () from /usr/lib/libSCscf.so.4 #10 0x407ce2da in sc::CLHF::CLHF(sc::Ref<sc::KeyVal> const&) () from /usr/lib/libSCscf.so.4 #11 0x407d1cdc in sc::DescribedClass* sc::create<sc::CLHF>(sc::Ref<sc::KeyVal> const&) () from /usr/lib/libSCscf.so.4 #12 0x40cf1bf6 in sc::ClassDesc::create(sc::Ref<sc::KeyVal> const&) const () from /usr/lib/libSCclass.so.4 #13 0x40cdca54 in sc::StringKeyVal::key_value(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #14 0x40ce0df1 in sc::PrefixKeyVal::key_value(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #15 0x40cd4205 in sc::KeyVal::key_describedclassvalue(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #16 0x40cd44ae in sc::KeyVal::describedclassvalue(char const*, sc::KeyValValue const&) () from /usr/lib/libSCkeyval.so.4 #17 0x080f6b2a in qm1_eng_mpqc (this=0xa841550, p1=@0xa81c4a0, mode=1) at /usr/include/sc/util/ref/ref.h:372 #18 0x080f0df9 in qm1_mdl::CreateDefaultEngine() (this=0xa81c4a0) at qm1mdl.cpp:225 #19 0x080f1fc7 in qm1_mdl::DoEnergy() (this=0xa81c4a0) at qm1mdl.cpp:663 #20 0x40457086 in gnome_pixmap_entry_get_filename () from /usr/lib/libgnomeui.so.32 [...] This is the tail of an strace: write(1, " Reading file /usr/share/mpqc/a"..., 44) = 44 brk(0) = 0xa879000 brk(0xa889000) = 0xa889000 open("/usr/share/mpqc/atominfo.kv", O_RDONLY) = 6 brk(0) = 0xa889000 brk(0xa88b000) = 0xa88b000 brk(0) = 0xa88b000 brk(0xa88f000) = 0xa88f000 fstat64(6, {st_mode=S_IFREG|0644, st_size=11957, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40020000 read(6, "% Emacs should use -*- keyval -*"..., 8192) = 8192 brk(0) = 0xa88f000 brk(0xa890000) = 0xa890000 brk(0) = 0xa890000 brk(0xa891000) = 0xa891000 brk(0) = 0xa891000 brk(0xa892000) = 0xa892000 brk(0) = 0xa892000 brk(0xa893000) = 0xa893000 brk(0) = 0xa893000 brk(0xa894000) = 0xa894000 read(6, " Sm = 1.85\n Eu = 1.85\n "..., 8192) = 3765 read(6, "", 4096) = 0 brk(0) = 0xa894000 brk(0xa895000) = 0xa895000 brk(0) = 0xa895000 brk(0xa896000) = 0xa896000 brk(0) = 0xa896000 brk(0xa897000) = 0xa897000 brk(0) = 0xa897000 brk(0xa898000) = 0xa898000 brk(0) = 0xa898000 brk(0xa899000) = 0xa899000 brk(0) = 0xa899000 brk(0xa89a000) = 0xa89a000 read(6, "", 8192) = 0 close(6) = 0 munmap(0x40020000, 4096) = 0 brk(0) = 0xa89a000 brk(0xa89b000) = 0xa89b000 brk(0) = 0xa89b000 brk(0xa89c000) = 0xa89c000 brk(0) = 0xa89c000 brk(0xa89d000) = 0xa89d000 --- SIGSEGV (Segmentation fault) @ 0 (0) --- write(3, "\33\0\2\0\0\0\0\0 \0\2\0\0\0\0\0+\0\1\0", 20) = 20 read(3, "\1\2\22F\0\0\0\0\216\1`\3\0\0\0\0\4\0\0\0\1\0\0\0\330y"..., 32) = 32 fork() = 13074 wait4(13074, [WIFEXITED(s) && WEXITSTATUS(s) == 0], 0, NULL) = 13074 --- SIGCHLD (Child exited) @ 0 (0) --- exit_group(1) = ? I've set a breakpoint at the last dynamic cast in qm1e_mpqc.cpp, but it did not trigger. Could this be an unrelated problem with mpqc? I've only run the mpqc test-suite, which does not use keyval et. al. as far as I know. running mpqc on /tmp/mpqc0000.in works without problems. Otherwise, everything else in ghemical seems to work fine, as far as I can tell. thanks, Michael