Re[52]: [Gc]: GC + Windows Mobile + Threads + Patch for WINCE

Ivan Maidanski ivmai at mail.ru
Mon Nov 9 02:09:40 PST 2009

Hi!
Zeyi Lee <biosli at hotmail.com> wrote:
> Hi!
>
> > > Yes, as you said the "goto handle_ex"(mark.c(GC_mark_some) Line: 519 ) was hit. It seems the old problem.
> >
> > And you are not defining GC_REGISTER_MEM_PRIVATE, right? It's interesting what're the memory region attributes to which the address (raising Data Abort) belongs.
> No, I'm not defining GC_REGISTER_MEM_PRIVATE.

In the phrase "It's interesting..." I just wanted you to compile this test case with -DDEBUG_VIRTUALQUERY and send me what's printed in the log (the lines starting with "BaseAddress=").

> ...

> > Do MAKE_BACK_GRAPH, GC_PRINT_VERBOSE_STATS, DEBUG_THREADS matter the problem? (i.e. if you comment out these 3 definitions, would the problem go away?)
>
> Yes, comment out them, the test program runs OK.
> >
> > Did you try with -DGC_ASSERTIONS?
>
> Test only with GC_ASSERTIONS is OK, but add with MAKE_BACK_GRAPH the test failed(ABORT--"Collecting from unknown thread").

So the problem occurs if compiled with MAKE_BACK_GRAPH.

> > Also try with GC_DISABLE_INCREMENTAL (either macro or environment variable).
> The same with above.
> .........

> > I tried to reproduce the problem (using the latest CVS) but failed (it runs ok):
> >
> > I've compiled (on VS 2005 x86) the test with your options (_CRT_SECURE_NO_DEPRECATE just suppresses warnings):
> >
> > cl -MT -DGC_THREADS -DMAKE_BACK_GRAPH -DGC_PRINT_VERBOSE_STATS -DDEBUG_THREADS -Iinclude -Ilibatomic_ops\src -D_CRT_SECURE_NO_DEPRECATE tests\test.c *.c user32.lib /link /stack:65536

Or you may safely use extra\gc.c instead of *.c.

>
> I tried to build the program in command line as you said.(This is the first time I compile program without IDE)
> The file os_dep.c, it seems no use in win32 program, and it occus compile error, so I remove it.

os_dep.c is required. Which compile errors it produces?

> Then, I got LINK errors...
> ----------------------
> allchblk.obj : error LNK2001: unresolved external symbol _GC_remove_protection
> ...

Not a surprise, all these symbols are defined in os_dep.c.

>
> What should I do? Do me a faver, pls.

It's strange that you got compile errors in os_dep.c. Do you have completely modified bdwgc source (the latest CVS version)?

> >
> > Could you try it on your side? If it will run ok (several times), then send me (not to ML) the diff between preprocessor output (using -E option) of your version (based on the latest CVS) and mine one.

Bye.