Walk stack in signal handler

Volker Simonis volker.simonis at gmail.com
Wed Feb 17 17:40:03 UTC 2016

Hi Roman,

you should definitely use -XX:+PreserveFramePointer and you should
also have a look at the discussion on bug "8068945: Use RBP register
as proper frame pointer in JIT compiled code on x86" which discuss
some of the difficulties related to native stack walking in hotspot:



On Wed, Feb 17, 2016 at 6:28 PM, Roman Kovalenko <rmnkvlnk at gmail.com> wrote:
> Hi,
> 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?
> Thanks.
> On Fri, Feb 12, 2016 at 11:48 AM, Andrew Haley <aph at redhat.com> wrote:
>> On 11/02/16 17:54, Roman Kovalenko wrote:
>> > I would like to profile application by interrupting it with signals and
>> > using AsyncGetCallTrace then. This works well, but also I want to collect
>> > every 'this' for any object method frame that is walkable by AGCT. I
>> looked
>> > around (forte.cpp and related) but had no success.
>> >
>> > Is it even possible?
>> It's difficult.  The compilers move values around and things are
>> really only stable at safepoints.
> --
> -rmnk-

More information about the hotspot-runtime-dev mailing list