review (S) for 6936709: AsyncGetCallTrace doesn't handle inexact stack walking properly
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Apr 1 14:18:29 PDT 2010
Looks good.
Vladimir
Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/6936709
>
> This is for hs17 and hs18.
>
> 6936709: AsyncGetCallTrace doesn't handle inexact stack walking properly
> Reviewed-by:
>
> When trying to stack walk a frame for AsyncGetCallTrace there is
> existing logic that tries to make sure that the current pc in the
> frame maps some PcDesc so that the vframeStream logic will properly
> walk it. That code uses pc_desc_at to perform the lookup which
> requires an exact match. Since AsyncGetCallTrace is driven by a timer
> there's no guarantee that the pc of the topmost frame is pointing at a
> PcDesc. There's is code that tries to handle this but since it's
> logic is reversed it never triggering. This means that when we go to
> walk the stack the vframeStream code won't find a PcDesc and it will
> report 0 as the bci for that frame. The fix is to correct the
> AsyncGetCallTrace logic to correctly update the pc in the frame to
> point at a valid PcDesc. I also corrected some signatures and
> restructured the logic a bit to make it clearer. Tested with the Sun
> Studio Analyzer in user mode.
>
> src/share/vm/prims/forte.cpp
More information about the hotspot-compiler-dev
mailing list