首页 > TAG信息列表 > stackframe

【C# 异常处理】StackTrace 堆栈跟踪

作用 在使用.NET编写的代码在debug时很容易进行排查和定位问题,一旦项目上线并出现问题的话那么只能依靠系统日志来进行问题排查和定位,但当项目复杂时,即各种方法间相互调用将导致要获取具体的出错方法或调用者将是一件不那么容易的事(因为没有PDB文件) 还好.NET提供了一系列系统组

.Net Core(C#) 使用StackTrace或StackFrame获取方法的调用者方法所在类的类名

本文主要介绍.Net Core(C#)中,当一个类一个方法会被其它类的某个方法调用时,使用StackTrace或StackFrame获取调用者方法的类名,也就是这个其它类的类名的示例代码,以及使用StackTrace获取堆栈信息(文件名、行号、函数名、列号)的方法。 原文地址:.Net Core(C#) 使用StackTrace或StackFr

在Linux应用程序中打印函数调用栈

在Linux中打印函数调用栈 要求在Linux系统的应用程序中写一个函数print_stackframe(),用于获取当前位置的函数调用栈信息 方法execinfo.h库下的函数backtrace可以得到当前线程的函数调用栈指针和调用栈深度,backtrace_symbols可以将调用栈指针转化为字符串信息。详见Backtraces或在Li

如何找到调用当前方法的方法?

登录C#时,如何得知调用当前方法的方法的名称? 我知道有关System.Reflection.MethodBase.GetCurrentMethod()全部知识,但是我想在堆栈跟踪中比这低一级。 我已经考虑过解析堆栈跟踪,但是我希望找到一种更清晰,更明确的方式,类似于Assembly.GetCallingAssembly()但用于方法。 #1楼 您

java – 什么是堆栈映射框架

我最近一直在关注Java Virtual Machine Specifications(JVMS),试图更好地理解我的程序是如何工作的,但我找到了一个我不太了解的部分…… 第4.7.4节描述了StackMapTable属性,在该部分中,文档详细介绍了堆栈映射帧.问题在于它有点罗嗦,我通过榜样学得最好;不是通过阅读. 我知道第一

为什么Java编译器生成奇怪的本地变量和堆栈映射帧?如何使用它们可靠地确定变量类型?

我在ASM框架的帮助下创建Java字节码检测工具,需要确定并可能更改方法的局部变量类型.很快我遇到了一个简单的情况,其中变量和堆栈映射节点看起来有些奇怪,并且没有给我足够的有关正在使用的变量的信息: public static void test() { List l = new ArrayList(); for (Object

未使用的局部变量Java 8 – java.lang.VerifyError:不一致的stackmap帧

我最近将项目从1.7升级到Java 1.8. 我得到一个异常的堆栈映射的异常,我的一个类中的方法. 在方法中初始化一些未分配的局部变量解决了它,但有人可以解释为什么使用未读变量会在Java 8中引发异常,谢谢. 它可能与使用的eclipse版本(Kepler SR 2 20140224-0627),只是好奇. 解决方法 >

python – 仅在给定堆栈帧对象的情况下解析变量名称

我试图找出是否可以解决堆栈帧中的变量(由inspect.currentframe()返回). 换句话说,我正在寻找一个功能 def resolve_variable(variable_name, frame_object): return value_of_that_variable_in_that_stackframe 例如,请考虑以下代码: global_var = 'global' def foo():