`

获取运行时的堆栈信息

    博客分类:
  • J2SE
 
阅读更多
public class Hi {
	public static void main(String[] args) {
		Throwable ex = new Throwable();

		StackTraceElement[] stackElements = ex.getStackTrace();

		if (stackElements != null) {
			for (int i = 0; i < stackElements.length; i++) {
				System.out.println(stackElements[i].getClassName());
				System.out.println(stackElements[i].getFileName());
				System.out.println(stackElements[i].getLineNumber());
				System.out.println(stackElements[i].getMethodName());
				System.out.println("-----------------------------------");
			}
		}
	}

}

下面是对上面的封装
Class caller = Reflection.getCallerClass(5);
String path = caller.getProtectionDomain().getCodeSource()
				.getLocation().getFile();

分享到:
评论

相关推荐

    C++高效获取函数调用堆栈

    首先,需要获取当前函数的调用堆栈信息,然后根据堆栈信息来确定函数的调用地址。使用 VC 编译出来的 map 文件可以帮助我们快速定位函数地址。 在获取函数调用堆栈信息的过程中,我们需要了解函数调用堆栈的结构和...

    一个获取程序堆栈的源码

    1. **异常处理机制**:C++的`try-catch`语句可以捕获运行时异常,而`catch`块中的代码可以利用异常对象获取堆栈信息,如调用堆栈的回溯。 2. **栈帧信息**:通过访问内存地址,可以获取到栈帧的相关信息,如函数...

    VC中打印当前调用堆栈信息实例

    在Microsoft Visual C++ (VC) 开发环境中,打印当前调用堆栈信息是一个非常有用的调试技巧,它可以帮助开发者追踪程序执行流程,理解函数调用顺序,尤其是在遇到异常或错误时。下面将详细介绍如何在VC中实现这个功能...

    gdb调试信息堆栈信息

    堆栈信息在调试中扮演着至关重要的角色,因为它记录了程序运行时的调用顺序。当程序崩溃或出现异常时,堆栈信息可以帮助我们理解导致问题的函数序列,即“调用栈”。每层栈帧代表一个函数调用,包含了函数参数、局部...

    Java 实例 - 获取异常的堆栈信息源代码-详细教程.zip

    本教程将深入探讨如何获取并理解Java异常的堆栈信息,这对于调试和问题定位至关重要。堆栈信息提供了异常发生时代码执行的详细路径,帮助开发者了解问题的根源。 1. **异常基础** 在Java中,异常是一种特殊的对象...

    Android中获取系统内存信息以及进程信息

    在Android系统中,开发者可以通过Android提供的API来获取系统的内存信息以及正在运行的进程状态。这一功能主要涉及到`ActivityManager`类的使用。`ActivityManager`是Android SDK中的一个关键组件,它提供了对系统...

    易语言申请进程堆栈内存

    综上所述,易语言的"申请进程堆栈内存"涉及了进程内存管理的基本概念和实践,包括内存的申请、释放,以及与之相关的CPU信息获取和堆栈句柄操作。理解这些知识点对于编写高效、稳定的易语言程序至关重要。在实际编程...

    输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程

    线程堆栈信息可以让我们深入观察到线程的运行状况,包括线程的当前状态、调用堆栈、锁信息等。为了获取这些信息,我们可以使用jstack工具,它是Java开发工具包(JDK)的一部分,能够输出Java进程的线程堆栈跟踪信息...

    STM32 堆栈检测示例

    堆栈检测在STM32开发中是一项重要的任务,它能够帮助开发者监控程序运行时的堆栈使用情况,防止堆栈溢出,从而提高系统的稳定性和安全性。 堆栈是MCU内存中的一个区域,用于存储函数调用时的返回地址、局部变量和...

    linux程序崩溃堆栈信息打印库

    堆栈信息包含了程序运行时调用函数的顺序,这对于调试和优化至关重要。"linux程序崩溃堆栈信息打印库"是专门为解决这个问题而设计的库,它允许程序员在程序崩溃时自动打印出堆栈跟踪信息。 这个库名为`libexecinfo`...

    Java源码获取程序运行环境的信息

    7. **Java诊断工具**:如JDK自带的`jinfo`、`jmap`、`jstack`等,它们能直接从命令行获取JVM的配置信息、内存映射、堆栈信息等。 8. **Garbage Collection信息**:通过`java.lang.Runtime`的`gc()`方法可以强制执行...

    VC中如何打印当前调用堆栈

    为了获取更详细的调用堆栈信息,如源代码行号和参数值,需要在编译时开启调试信息(/Zi 或 /Zi),并使用 `/DEBUG` 链接选项。这样,在`Call Stack`窗口中,你可以看到每个函数的源代码行号。 ### 5. 第三方库支持 ...

    在Linux与Windows上获取当前堆栈信息的方法

    在软件开发过程中,特别是在调试阶段,能够有效地获取当前程序的堆栈信息对于理解程序运行时的状态、定位问题所在具有至关重要的作用。本文将详细介绍如何在Linux与Windows操作系统上获取当前堆栈信息。 #### Linux...

    lua 崩溃获取各个堆栈中局部变量 上层变量 全局变量,方便定位问题

    lua 崩溃获取各个堆栈中局部变量 上层变量 全局变量,方便定位问题,可以用于cocos2d引擎,测试demo,直接lua trace.lua就可以运行看效果

    JCL_Debug_StackTrace_Demo

    通过这种方式,可以在异常发生时立即获取到堆栈信息,而不是等到程序崩溃后分析日志。这对于实时监控和调试多线程应用尤其有用。 在描述中提到,JCL的堆栈跟踪功能可以直接打印出问题行,这意味着开发者可以快速...

    调用堆栈的类

    本文将深入探讨如何使用C++在运行时获取调用堆栈的信息。 首先,我们需要理解C++中的堆栈框架是如何工作的。每次函数调用都会创建一个新的堆栈帧,存储参数、返回地址以及局部变量。当函数执行完毕,其堆栈帧会被弹...

    VC 记录程序崩溃堆栈

    // 获取并记录堆栈信息 CONTEXT context; RtlCaptureContext(&context); MiniDumpWriteDump(..., &context, ...); // 调用MiniDumpWriteDump来生成包含堆栈信息的内存转储文件 // 终止程序 return EXCEPTION_...

    打印JAVA堆栈的方法

    代码示例中展示的是一种利用`Thread`类中的静态方法`getAllStackTraces()`来获取当前所有线程的堆栈信息的方法。该方法返回一个`Map`对象,其中键为`Thread`对象,值为`StackTraceElement`数组。每个`...

    IBM java线程堆栈分析工具

    1. **获取线程堆栈信息**:工具能够快速地打印出服务器上所有线程的当前堆栈信息,这对于识别阻塞或挂起的线程,以及它们在执行路径中的位置非常有帮助。 2. **诊断性能问题**:通过查看线程堆栈,可以发现CPU消耗...

    gbd堆栈信息采集与分析

    当程序发生崩溃时,系统通常会生成一个core dump文件,包含程序运行时的堆栈信息和其他内存状态。通过 `gdb &lt;your_program&gt; &lt;core_dump_file&gt;` 打开core dump,然后使用 `bt` 查看堆栈,可以有效地分析错误原因。 ...

Global site tag (gtag.js) - Google Analytics