# HG changeset patch # User never # Date 1238189862 25200 # Node ID 4948e7dd28dcb63ea6e6bb3c748d5f1cacc15b01 # Parent fbc12e71c47637a3d1a1d4c68e7485cd8b2d9988 6822333: _call_stub_compiled_return address handling in SA is broken causing jstack to hang occasionally Reviewed-by: kvn, twisti diff -r fbc12e71c476 -r 4948e7dd28dc agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java Thu Mar 26 15:04:55 2009 -0700 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java Fri Mar 27 14:37:42 2009 -0700 @@ -46,12 +46,18 @@ Type type = db.lookupType("StubRoutines"); callStubReturnAddressField = type.getAddressField("_call_stub_return_address"); - // Only some platforms have specif return from compiled to call_stub + // Only some platforms have specific return from compiled to call_stub try { - callStubCompiledReturnAddressField = type.getAddressField("_call_stub_compiled_return"); + type = db.lookupType("StubRoutines::x86"); + if (type != null) { + callStubCompiledReturnAddressField = type.getAddressField("_call_stub_compiled_return"); + } } catch (RuntimeException re) { callStubCompiledReturnAddressField = null; } + if (callStubCompiledReturnAddressField == null && VM.getVM().getCPU().equals("x86")) { + throw new InternalError("Missing definition for _call_stub_compiled_return"); + } } public StubRoutines() {