[Gc] gc7 and 64-bit platforms
pcolson at connexus.net.au
Tue Nov 16 22:05:14 PST 2004
On 17/11/2004, at 6:22 AM, Boehm, Hans wrote:
> It seems to me that the ABI documentation for the platform should
> really specify were function arguments are stored. If those locations
> are not easily readable, I think you're stuck. But that would be
> strange, especially since a debugger can presumably get to them.
Such doco can be extremely hard to find, if it exists at all, but that
is typical of what is a very closed platform. The 400 refers to "call
stacks" when invoking functions but there is no clear doco on how these
might be accessed, that I've found. I'll keep hunting...
> Another alternative is to use a debugger to step to the GC_malloc call
> that ends up reallocating an in-use object, and look around and see
> the original pointer to that object is stored.
Just to clarify: you're saying that when GC_malloc reallocates the
previously used pointer (which I can debug to currently) a mass scan of
the program's memory may lead to finding another instance of that same
pointer value which could lead to an attempt to mark the object pointed
to by this pointer when the previous malloc is done (using a
GC_push_regs replacement)? Possible, I guess, I'll look into the
capabilities of the debugger.
(On the 400 it's entirely likely that the debugger - like the compilers
- is operating at a privileged level enabling it to see things that a
regular user application couldn't...)
More information about the Gc