Thread stack pointers

David Daney ddaney@avtrex.com
Wed Mar 21 20:35:00 GMT 2007


Delvin Defoe wrote:
> Hi:
>> I am implementing a multi-thread, multiprocessor garbage collection
> system for Java in gcc. In the runtime system I need to determine the
> stack base and stack top pointers for each mutator in order to scan
> the stack for each mutator for pointers to live heap objects. Any
> idea how I can determine or compute these pointers?
>Generic answer:
How about doing the same thing boehm-gc does?
For linux, you would have each thread is register with the GC when it is 
started. In this registration function you find the address of 
something on the stack of that thread, then look in /proc/self/maps to 
see what memory range contains that address. That range will be your 
stack bounds.
To find the stack top, send a signal to a thread, and then the stack top 
will be slightly above the address of an automatic variable of the 
signal handler function.
David Daney


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /