Interface StackWalker.StackFrame
- Enclosing class:
StackWalker
public static interface StackWalker.StackFrame
StackFrame object represents a method invocation returned by StackWalker. Stack walker options configure the stack frame information obtained by a StackWalker. If the stack walker is configured with DROP_METHOD_INFO option, method information such as the method name, the line number, the bytecode index, etc will be dropped. If the stack walker is configured with RETAIN_CLASS_REFERENCE option, the Class object will be retained for access.
- See Java Virtual Machine Specification:
- 2.6 Frames
- Since:
- 9
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
int |
getByteCodeIndex() |
Returns the index to the code array of the Code attribute containing the execution point represented by this stack frame. |
String |
getClassName() |
Returns the binary name of the declaring class of the method represented by this stack frame. |
Class |
getDeclaringClass() |
Returns the declaring Class for the method represented by this stack frame. |
default String |
getDescriptor() |
Returns the descriptor of the method represented by this stack frame as defined by The Java Virtual Machine Specification. |
String |
getFileName() |
Returns the name of the source file containing the execution point represented by this stack frame. |
int |
getLineNumber() |
Returns the line number of the source line containing the execution point represented by this stack frame. |
String |
getMethodName() |
Returns the name of the method represented by this stack frame. |
default MethodType |
getMethodType() |
Returns the MethodType representing the parameter types and the return type for the method represented by this stack frame. |
boolean |
isNativeMethod() |
Returns true if the method containing the execution point represented by this stack frame is a native method. |
StackTraceElement |
toStackTraceElement() |
Returns StackTraceElement for this stack frame. |
Method Details
getClassName
String getClassName()
- Returns:
- the binary name of the declaring class of the method represented by this stack frame
- See Java Language Specification:
- 13.1 The Form of a Binary
getMethodName
String getMethodName()
- Returns:
- the name of the method represented by this stack frame
- Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption
getDeclaringClass
Class<?> getDeclaringClass()
Class for the method represented by this stack frame.- Returns:
- the declaring
Classfor the method represented by this stack frame - Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withoutRETAIN_CLASS_REFERENCEoption
getMethodType
default MethodType getMethodType()
MethodType representing the parameter types and the return type for the method represented by this stack frame.- Implementation Requirements:
- The default implementation throws
UnsupportedOperationException. - Returns:
- the
MethodTypeof the method represented by this stack frame - Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption or withoutRETAIN_CLASS_REFERENCEoption - Since:
- 10
getDescriptor
default String getDescriptor()
- Implementation Requirements:
- The default implementation throws
UnsupportedOperationException. - Returns:
- the descriptor of the method represented by this stack frame
- Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption - See Java Virtual Machine Specification:
- 4.3.3 Method Descriptors
- Since:
- 10
- See Also:
getByteCodeIndex
int getByteCodeIndex()
Code attribute containing the execution point represented by this stack frame. The code array gives the actual bytes of Java Virtual Machine code that implement the method.- Returns:
- the index to the code array of the
Codeattribute containing the execution point represented by this stack frame, or a negative number if the method is native. - Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption - See Java Virtual Machine Specification:
- 4.7.3 The
CodeAttribute
getFileName
String getFileName()
SourceFile attribute of the relevant class file as defined by The Java Virtual Machine Specification. In some systems, the name may refer to some source code unit other than a file, such as an entry in a source repository.- Returns:
- the name of the file containing the execution point represented by this stack frame, or
nullif this information is unavailable. - Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption - See Java Virtual Machine Specification:
- 4.7.10 The
SourceFileAttribute
getLineNumber
int getLineNumber()
LineNumberTable attribute of the relevant class file as defined by The Java Virtual Machine Specification.- Returns:
- the line number of the source line containing the execution point represented by this stack frame, or a negative number if this information is unavailable.
- Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption - See Java Virtual Machine Specification:
- 4.7.12 The
LineNumberTableAttribute
isNativeMethod
boolean isNativeMethod()
true if the method containing the execution point represented by this stack frame is a native method.- Returns:
-
trueif the method containing the execution point represented by this stack frame is a native method - Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption
toStackTraceElement
StackTraceElement toStackTraceElement()
StackTraceElement for this stack frame.- Returns:
-
StackTraceElementfor this stack frame - Throws:
-
UnsupportedOperationException- if theStackWalkeris configured withDROP_METHOD_INFOoption
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/StackWalker.StackFrame.html