[Gc] Running Boehm-Demers-Weiser gc on a simulator

Jiwon Seo jiwon at stanford.edu
Wed Nov 29 14:14:49 PST 2006


On 11/29/06, Boehm, Hans <hans.boehm at hp.com> wrote:
> If you haven't done so already, have a look at the last section in
> http://www.hpl.hp.com/personal/Hans_Boehm/gc/debugging.html .

Yup, just did that. Strange thing is, right before
GC_finish_collection is called, the object whose field will have wrong
value afterward is actually marked. (confirmed with
GC_is_marked(GC_base(p)))

Is it possible that the object is marked but still corrupted by the
allocator or the collector?

>
> It sounds like it's also worth checking specifically that stacks are
> traced.  Assuming that this a single-threaded application, and you are
> using gc6.8 built without thread support, step through
> GC_push_current_stack() to make sure it's doing the right thing.
>
> What's the simulated architecture?  Could it be a value that's only in a
> register that is not being traced?

It's simulating power pc 64, and the register values are actually
pushed on the stack by gcc's __builtin_unwind_init() . So I believe
all the necessary registers are pushed on the stack.


More information about the Gc mailing list