[Ecls-list] cl_boot crash

Louis Höfler louis.hoefler at gmx.de
Wed Jul 28 02:55:32 UTC 2010


I initialize it like this:
int argc = 1;
char* argv[1];
argv[0] = "";
cl_boot(argc, argv);

Using a unitialized variable for cl_boot will crash it.

Greets Louis.

-----Ursprüngliche Nachricht-----
Von: John DeSoi [mailto:desoi at pgedit.com] 
Gesendet: Mittwoch, 28. Juli 2010 02:13
An: ecls-list at lists.sourceforge.net
Betreff: [Ecls-list] cl_boot crash

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::StPackedDictionaryKe
y 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 at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list





More information about the ecl-devel mailing list