[ghemical-devel] complete MY_RTTI patch
Michael Banck
mbanck@gmx.net
Wed, 26 Mar 2003 16:49:59 +0100
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