您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 宜昌分类信息网,免费分类信息发布

在Java 9中如何显示当前线程的所有堆栈帧?

2025/8/12 10:10:10发布6次查看
stack walking api 可以提供灵活的机制来遍历调用堆栈并提取信息,使我们能够以惰性方式过滤和访问帧。 stackwalker类是 stack walking api 的入口点。堆栈跟踪表示某个时间点的调用堆栈,其中每个元素代表一个方法调用。它包含从线程启动到生成的所有调用。
在下面的示例中,我们可以使用 stackwalker api 打印/显示当前线程的所有堆栈帧。
示例import java.lang.stackwalker.stackframe;import java.lang.reflect.method;import java.util.list;import java.util.stream.collectors;public class stackwalkertest { public static void main(string args[]) throws exception { method test1method = helper1.class.getdeclaredmethod("test1", (class[])null); test1method.invoke(null, (object[]) null); }}// helper1 classclass helper1 { protected static void test1() { helper2.test2(); }}// helper2 classclass helper2 { protected static void test2() { list<stackframe> stack = stackwalker.getinstance().walk((s) -> s.collect(collectors.tolist())); for(stackframe frame : stack) { system.out.println(frame.getclassname() + " " + frame.getlinenumber() + " " + frame.getmethodname()); } }}
输出helper2 23 test2helper1 16 test1stackwalkertest 9 main
以上就是在java 9中如何显示当前线程的所有堆栈帧?的详细内容。
宜昌分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product