[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