xtal を試してみた その5
追ってみたけど。。。うーん。。。わかんね。
(gdb) file ix.exe (gdb) run ix:001>Foo: class(Class) {} Program received signal SIGSEGV, Segmentation fault. 0x004c6fe2 in xtal::pvalue (v=@0x44) at ../xtal/xtal_any.h:237 237 return v.pvalue_; (gdb) bt #0 0x004c6fe2 in xtal::pvalue (v=@0x44) at ../xtal/xtal_any.h:237 #1 0x004d0d75 in xtal::SmartPtr<xtal::Array>::get2 (this=0x44) at ../xtal/xtal_smartptr.h:256 #2 0x004d0d60 in xtal::SmartPtr<xtal::Array>::get (this=0x44) at ../xtal/xtal_smartptr.h:244 #3 0x004d0d89 in xtal::SmartPtr<xtal::Array>::operator-> (this=0x44) at ../xtal/xtal_smartptr.h:233 #4 0x0040b882 in xtal::Class::is_inherited (this=0x0, v=@0x1363e28) at ../xtal/xtal_frame.cpp:448 #5 0x0042738c in xtal::Any::is (this=0x137afa0, v=@0x1363e28) at ../xtal/xtal_any.cpp:253 #6 0x0040203f in xtal::cast_helper_helper_extend_any (a=@0x137afa0, cls=@0x1363e28) at ../xtal/xtal_cast.cpp:81 #7 0x00498fce in xtal::cast_helper_helper<xtal::Class, xtal::SmartPtr<xtal::Cla ss> const*> (a=@0x137afa0) at ../xtal/xtal_cast.h:86 #8 0x004866cb in xtal::CastHelper<xtal::SmartPtr<xtal::Class> const*>::cast_inn er<xtal::SmartPtr<xtal::Class> const> (a=@0x137afa0) at ../xtal/xtal_cast.h:180 #9 0x0048673d in xtal::CastHelper<xtal::SmartPtr<xtal::Class> const*>::cast ( a=@0x137afa0) at ../xtal/xtal_cast.h:217 #10 0x0049e815 in xtal::cast<xtal::SmartPtr<xtal::Class> const*> ( a=@0x137afa0) at ../xtal/xtal_cast.h:247 #11 0x004861a5 in xtal::CastHelper<xtal::SmartPtr<xtal::Class> >::cast_inner ( a=@0x137afa0) at ../xtal/xtal_cast.h:207 #12 0x004861dd in xtal::CastHelper<xtal::SmartPtr<xtal::Class> >::cast ( a=@0x137afa0) at ../xtal/xtal_cast.h:217 #13 0x0049e769 in xtal::cast<xtal::SmartPtr<xtal::Class> > (a=@0x137afa0) at ../xtal/xtal_cast.h:247 #14 0x0043f2c6 in xtal::VMachine::FunClassBegin (this=0x136b508, pc=0x1362bd3 "\206") at ../xtal/xtal_vmachine.cpp:2992 #15 0x004379bb in xtal::VMachine::execute_inner (this=0x136b508, start=0x1362bd0 "y") at ../xtal/xtal_vmachine.cpp:1996 #16 0x00433955 in xtal::VMachine::execute (this=0x136b508, fun=0x1381df0, start_pc=0x1362bd0 "y") at ../xtal/xtal_vmachine.cpp:392 #17 0x004544cc in xtal::CodeBuilder::interactive_compile (this=0x22a560) at ../xtal/xtal_codebuilder.cpp:99 #18 0x00418b02 in xtal::ix () at ../xtal/xtal_lib.cpp:72 #19 0x0040181b in main (argc=1, argv=0x1361c18) at ../xtal/ixmain.cpp:31
フレーム #4 の this が NULL になってるのがこの現象の要因だろうけど、なんで NULL になるのかよーわからん。
#4 0x0040b882 in xtal::Class::is_inherited (this=0x0, v=@0x1363e28)
こまった。