Skip to content

Commit 39d2f37

Browse files
committed
Must use anchors for platform threads also when skipping virtual thread frames.
1 parent d23de9f commit 39d2f37

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/StackTraceUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public static StackTraceElement[] getStackTraceAtSafepoint(Thread thread) {
9494
public static StackTraceElement[] getThreadStackTraceAtSafepoint(IsolateThread isolateThread, Pointer endSP) {
9595
assert VMOperation.isInProgressAtSafepoint();
9696
BuildStackTraceVisitor visitor = new BuildStackTraceVisitor(false, SubstrateOptions.MaxJavaStackTraceDepth.getValue());
97-
JavaStackWalker.walkThread(isolateThread, endSP, visitor);
97+
JavaStackWalker.walkThread(isolateThread, endSP, visitor, null);
9898
return visitor.trace.toArray(NO_ELEMENTS);
9999
}
100100

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/stack/JavaStackWalker.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ public static <T> boolean walkCurrentThread(Pointer startSP, ParameterizedStackF
259259
return walkCurrentThread(startSP, WordFactory.nullPointer(), FrameAccess.singleton().readReturnAddress(startSP), visitor, data);
260260
}
261261

262-
@Uninterruptible(reason = "Prevent deoptimization of stack frames while in this method.")
262+
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
263263
public static <T> boolean walkCurrentThread(Pointer startSP, CodePointer startIP, ParameterizedStackFrameVisitor<T> visitor) {
264264
return walkCurrentThread(startSP, WordFactory.nullPointer(), startIP, visitor, null);
265265
}
@@ -275,10 +275,6 @@ public static boolean walkThread(IsolateThread thread, StackFrameVisitor visitor
275275
return walkThread(thread, visitor, null);
276276
}
277277

278-
public static boolean walkThread(IsolateThread thread, Pointer endSP, StackFrameVisitor visitor) {
279-
return walkThread(thread, endSP, visitor, null);
280-
}
281-
282278
public static <T> boolean walkThread(IsolateThread thread, ParameterizedStackFrameVisitor<T> visitor, T data) {
283279
return walkThread(thread, WordFactory.nullPointer(), visitor, data);
284280
}
@@ -299,8 +295,6 @@ public static void walkThreadAtSafepoint(Pointer startSP, Pointer endSP, CodePoi
299295
assert VMOperation.isInProgressAtSafepoint();
300296
JavaStackWalk walk = StackValue.get(JavaStackWalk.class);
301297
initWalk(walk, startSP, endSP, startIP);
302-
walk.setAnchor(WordFactory.nullPointer());
303-
walk.setEndSP(endSP);
304298
doWalk(walk, visitor, null);
305299
}
306300

0 commit comments

Comments
 (0)