gpt4 book ai didi

java - 在eclipse中更改调试 View 的内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:57:44 25 4
gpt4 key购买 nike

我正在写一个java框架,对于一个类文件sample.class,它生成一个代理文件sample_proxy.class。当调用 sample.testMethod() 时,它会执行 sample_proxy.class。我已经制作了一个 eclipse 插件来使断点工作, enter image description here

如果我从 Main.java 开始,并在 sample.testMethod() 中设置断点,下面的堆栈如下所示:Main.main-->sample.proxy_method-->sample_proxy.testMethod。
有什么方法可以让代理显示如下:Main.main-->sample.testMethod?

最佳答案

你想做的是可能的,但有点复杂。首先,无法更改正在运行的程序的 StackTrace。所以 Thread.currentThread().getStackTrace() 不是要走的路。

I'm writing a java framework, for a class file, sample.class, it generates a proxy file sample_proxy.class.

当你这样做时,你必须内联被调用的方法,而不是简单地调用它。 ProGuard 也使用了这项非平凡的技术.你会发现它做了不同种类的内联。您最感兴趣的可能是“内联短方法”的功能。

我建议您从那里的代码中复制它。我开始的好点是 http://sourceforge.net/p/proguard/code/ci/default/tree/src/proguard/optimize/Optimizer.java#l156

但请注意,这需要有关 JVM 本身的基本知识,因此不会有一个简单的代码片段可以在您期望的上下文中执行您想要的操作。

希望对你有帮助。

关于java - 在eclipse中更改调试 View 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31501293/

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