8370240: [PPC64] jhsdb jstack cannot handle continuation stub

Reviewed-by: mdoerr, rrich
This commit is contained in:
David Briemann 2025-10-21 12:54:59 +00:00
parent ea7186a87f
commit d4c0239746
2 changed files with 16 additions and 2 deletions

View File

@ -258,7 +258,13 @@ public class PPC64Frame extends Frame {
}
if (cb != null) {
return cb.isUpcallStub() ? senderForUpcallStub(map, (UpcallStub)cb) : senderForCompiledFrame(map, cb);
if (cb.isUpcallStub()) {
return senderForUpcallStub(map, (UpcallStub)cb);
} else if (cb.isContinuationStub()) {
return senderForContinuationStub(map, cb);
} else {
return senderForCompiledFrame(map, cb);
}
}
// Must be native-compiled frame, i.e. the marshaling code for native
@ -331,6 +337,15 @@ public class PPC64Frame extends Frame {
return new PPC64Frame(sp, unextendedSP, getLink(), getSenderPC());
}
private Frame senderForContinuationStub(PPC64RegisterMap map, CodeBlob cb) {
var contEntry = map.getThread().getContEntry();
Address sp = contEntry.getEntrySP();
Address pc = contEntry.getEntryPC();
Address fp = contEntry.getEntryFP();
return new PPC64Frame(sp, fp, pc);
}
private Frame senderForCompiledFrame(PPC64RegisterMap map, CodeBlob cb) {
if (DEBUG) {

View File

@ -37,7 +37,6 @@ import jdk.test.lib.process.OutputAnalyzer;
* @test
* @bug 8369505
* @requires vm.hasSA
* @requires (os.arch == "amd64" | os.arch == "x86_64" | os.arch == "aarch64" | os.arch == "riscv64")
* @library /test/lib
* @run driver TestJhsdbJstackWithVirtualThread
*/