Walk stack in signal handler

Andrew Haley aph at redhat.com
Wed Feb 17 17:39:25 UTC 2016


On 02/17/2016 05:28 PM, Roman Kovalenko wrote:
> Looks like that I am able to get 'this' for native frame with
> frame::get_native_receiver() but I cannot do anything with any other frame
> type.
> How can I find out what is permitted to be used outside safepoint? Also,
> what can happen to frame outside safepoint, because of what is it hard to
> walk it? May be I should look in some precise source code locations?

A signal can happen at any point, even while the frame is being
constructed.  Maybe even the frame pointer is wrong.  Native compilers
can move things around arbitrarily; all they have to do is make things
correct at call boundaries.  The best you can hope to do is detect an
unwindable frame with a few heuristics and bail if you can't find
anything.

Andrew.



More information about the hotspot-runtime-dev mailing list