zoukankan      html  css  js  c++  java
  • java 打印程序堆栈中的信息

    简介

    作为程序奔溃调试的手段核心操作就是查看程序的堆栈。

    code

    package cn;
    
    import java.util.Scanner;
    
    public class StackTraceTest {
    	public static int factorial(int n){
    		System.out.println("factorial(" + n +"):");
    		Throwable t = new Throwable();
    		StackTraceElement[] frames = t.getStackTrace();
    		for (StackTraceElement f : frames){
    			System.out.println(f);
    		}
    		int r;
    		if(n <= 1) r = 1;
    		else r = n * factorial(n - 1);
    		System.out.println("return" + r);
    		return r;
    	}
    	public static void main(String[] args){
    		Scanner in = new Scanner(System.in);
    		System.out.print("Enter n:");
    		int n = in.nextInt();
    		factorial(n);
    	}
    }
    
    

    result

    Enter n:5
    factorial(5):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(4):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(3):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(2):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    factorial(1):
    cn.StackTraceTest.factorial(StackTraceTest.java:8)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.factorial(StackTraceTest.java:15)
    cn.StackTraceTest.main(StackTraceTest.java:23)
    return1
    return2
    return6
    return24
    return120
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    【IBM】netperf 与网络性能测量
    netperf 网络性能测试
    Netperf测试技巧
    网络测试工具--Iperf、Netperf 、MZ
    iozone
    iozone的使用与介绍-20191105
    XRDP freerdp
    性能工具 stream 最新版本5.10 The STREAM benchmark
    Linux学习之路-Linux-at及cron命令【7】---20171215
    centos7基于luks对磁盘进行加密
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13585222.html
Copyright © 2011-2022 走看看