gpt4 book ai didi

java - 遍历堆栈时显示传递的参数值

转载 作者:行者123 更新时间:2023-11-29 05:38:29 25 4
gpt4 key购买 nike

我正在尝试编写 Java 代码来遍历堆栈,不仅打印方法名称/行号,还打印作为参数传递给这些方法的值。我能够获取 Thread.getStackTrace() ( http://docs.oracle.com/javase/7/docs/api/java/lang/StackTraceElement.html ) 返回的每一帧的 StackTraceElement 对象 ( http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#getStackTrace%28%29 ),但此类未公开我需要的详细信息。

是否有另一种方法可以访问堆栈帧/激活记录,让我了解传递给每个方法的内容的详细信息?

最佳答案

如果您实现 JPDA (debugger API),您可能能够做到这一点但我怀疑你想这样做。 (除其他外,性能影响可能很重要。)

据我所知,如果没有这种程度的侵入性,您将无法通过反射获取参数值(或特定堆栈帧中的任何其他局部变量值)。

很抱歉,答案是否定的,但是如果没有那个或者你已经说过你不能使用的类似 AOP 的东西,你就不走运了。

关于java - 遍历堆栈时显示传递的参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18596365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com