[Gc] gc7 and 64-bit platforms

Peter Colson 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 
> rather
> 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 
> where
> 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...)


Regards,
Peter Colson.



More information about the Gc mailing list