I'm trying to create a 4D plugin to host ECL (OS X 10.5.8). I call cl_boot when the plugin is initialized, but 4D always crashes. If I trace under GDB, it appears to crash in GC_push_all_eager at the line "q = (ptr_t)(*p);"
I have included part of the crash report below. Unfortunately, I know just enough C to be dangerous so I don't really have a clue on what I might need to do to fix it. I have messed with the various boot options without success. Does cl_boot have to be called from a particular thread? If so, how do I achieve that? Thanks for any suggestions or ideas. John DeSoi, Ph.D. ===== void GC_push_all_eager(ptr_t bottom, ptr_t top) { word * b = (word *)(((word) bottom + ALIGNMENT-1) & ~(ALIGNMENT-1)); word * t = (word *)(((word) top) & ~(ALIGNMENT-1)); register word *p; register ptr_t q; register word *lim; register ptr_t greatest_ha = GC_greatest_plausible_heap_addr; register ptr_t least_ha = GC_least_plausible_heap_addr; # define GC_greatest_plausible_heap_addr greatest_ha # define GC_least_plausible_heap_addr least_ha if (top == 0) return; /* check all pointers in range and push if they appear */ /* to be valid. */ lim = t - 1 /* longword */; for (p = b; p <= lim; p = (word *)(((ptr_t)p) + ALIGNMENT)) { q = (ptr_t)(*p); GC_PUSH_ONE_STACK((ptr_t)q, p); } # undef GC_greatest_plausible_heap_addr # undef GC_least_plausible_heap_addr } Thread 23 Crashed: 0 libSystem.B.dylib 0x90b60fd6 usleep$NOCANCEL$UNIX2003 + 0 1 libSystem.B.dylib 0x90b78685 abort + 85 2 libecl.10.4.dylib 0x21844ca7 ecl_internal_error + 87 3 libecl.10.4.dylib 0x21865372 sigsegv_handler + 258 (unixint.d:573) 4 libSystem.B.dylib 0x90af82bb _sigtramp + 43 5 ??? 0xffffffff 0 + 4294967295 6 libecl.10.4.dylib 0x21886957 GC_push_all_stacks + 167 (darwin_stop_world.c:93) 7 libecl.10.4.dylib 0x2188114a GC_mark_some + 570 8 libecl.10.4.dylib 0x21878108 GC_stopped_mark + 136 9 libecl.10.4.dylib 0x21878b99 GC_try_to_collect_inner + 153 10 libecl.10.4.dylib 0x21882cae GC_init_inner + 926 11 libecl.10.4.dylib 0x21875af2 init_alloc + 82 (alloc_2.d:721) 12 libecl.10.4.dylib 0x2175acaf cl_boot + 127 (main.d:426) 13 com.4D.4DPlugin 0x14c73fa5 InitPlugin + 53 (4DPlugin.c:69) 14 com.4D.4DPlugin 0x14c73f5a PluginMain + 43 (4DPlugin.c:24) 15 com.4D.4DPlugin 0x14c63d1c FourDPackex + 96 (4DPluginAPI.c:45) 16 com.4d.4d 0x006ec1df xercesc_2_8::InputSource::setIssueFatalErrorIfNotFound(bool) + 28959 17 com.4d.4d 0x006ec306 xercesc_2_8::InputSource::setIssueFatalErrorIfNotFound(bool) + 29254 18 com.4d.4d 0x007161f0 bool xbox::VValueBag::GetLong<ProgressIndicatorType>(xbox::StPackedDictionaryKey const&, ProgressIndicatorType&) const + 34698 19 com.4d.4d 0x0071a0d9 bool xbox::VValueBag::GetLong<ProgressIndicatorType>(xbox::StPackedDictionaryKey const&, ProgressIndicatorType&) const + 50803 20 com.4d.4d 0x0071bf56 bool xbox::VValueBag::GetLong<ProgressIndicatorType>(xbox::StPackedDictionaryKey const&, ProgressIndicatorType&) const + 58608 21 com.4d.4d 0x0071c191 bool xbox::VValueBag::GetLong<ProgressIndicatorType>(xbox::StPackedDictionaryKey const&, ProgressIndicatorType&) const + 59179 22 com.4d.4d 0x001a0920 void xbox::VValueBag::SetLong<__DB4DFieldType>(xbox::StPackedDictionaryKey const&, __DB4DFieldType) + 123300 23 com.4d.4d 0x001a0b31 void xbox::VValueBag::SetLong<__DB4DFieldType>(xbox::StPackedDictionaryKey const&, __DB4DFieldType) + 123829 24 com.4d.4d 0x001a122b void xbox::VValueBag::SetLong<__DB4DFieldType>(xbox::StPackedDictionaryKey const&, __DB4DFieldType) + 125615 25 com.4d.4d 0x0043d5b9 void xbox::VValueBag::SetLong<EDataFileOpeningOptions>(xbox::StPackedDictionaryKey const&, EDataFileOpeningOptions) + 116045 26 com.4d.4d 0x002cef96 LayoutEditor::ExtraDescriptionShown xbox::VPreferences::GetValue<LayoutEditor::ExtraDescriptionShown, xbox::VLong>(xbox::StBagKeyWithDefault<LayoutEditor::ExtraDescriptionShown, xbox::VLong> const&) const + 198432 27 com.4d.kernel 0x018dc357 xbox::VTask::_Run() + 103 28 com.4d.kernel 0x018e0edd xbox::XMacTaskMgr::XMacTaskMgr() + 429 29 com.4d.kernel 0x0192c280 GetCurrentFiber() + 96 30 ...ple.CoreServices.CarbonCore 0x9012593d CooperativeThread + 309 31 libSystem.B.dylib 0x90abd155 _pthread_start + 321 32 libSystem.B.dylib 0x90abd012 thread_start + 34 Thread 23 crashed with X86 Thread State (32-bit): eax: 0x00000000 ebx: 0x90b78639 ecx: 0xb018199c edx: 0x90af9e42 edi: 0xb0181d00 esi: 0x00000002 ebp: 0xb0181a08 esp: 0xb01819dc ss: 0x0000001f efl: 0x00010286 eip: 0x90b60fd6 cs: 0x00000017 ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037 cr2: 0x0243e000 ------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://ad.doubleclick.net/clk;226879339;13503038;l? http://clk.atdmt.com/CRS/go/247765532/direct/01/ _______________________________________________ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list