Following on from JDK-8234372:
I think some renaming is needed here:
Thread::is_in_stack -> Thread::is_in_live_stack
Thread::on_local_stack -> Thread::is_in_full_stack // I wanted to use "mapped" to imply full stack segment but "mapped" has a special meaning at the OS page level
We should also add is_in_stack_range that takes a limit and checks that stack_base() > addr >= limit && limit <= stack_end(). This will avoid direct uses of stack_base() in many cases and avoid problems with checking >= versus > etc. Whether the limit is inclusive or exclusive may also have to be specified.