更改 Eclipse 中调试视图的内容
Posted
技术标签:
【中文标题】更改 Eclipse 中调试视图的内容【英文标题】:change the content of debug view in eclipse 【发布时间】:2015-10-08 16:16:42 【问题描述】:我正在编写一个java框架,对于一个类文件sample.class,它会生成一个代理文件sample_proxy.class。当 sample.testMethod() 被调用时,它会执行 sample_proxy.class。我已经制作了一个 Eclipse 插件来使断点工作,
如果我从 Main.java 开始,并在 sample.testMethod() 中下一个断点,下面的堆栈如下所示: Main.main-->sample.proxy_method-->sample_proxy.testMethod. 有什么办法可以让代理显示如下:Main.main-->sample.testMethod?
【问题讨论】:
您可以将样本作为抽象类,那么它不应该显示代理.. 【参考方案1】:你想做的事情是可能的,但有点复杂。首先,没有办法改变正在运行的程序的 StackTrace。所以Thread.currentThread().getStackTrace()
不是要走的路。
我正在为一个类文件sample.class编写一个java框架,它 生成代理文件 sample_proxy.class。
当你这样做时,你必须内联被调用的方法,而不是简单地调用它。这是ProGuard 也使用的重要技术。您会发现它执行不同类型的内联。最感兴趣的可能是“内联短方法”的功能。
我建议你从那里的代码中复制它。我的起点是http://sourceforge.net/p/proguard/code/ci/default/tree/src/proguard/optimize/Optimizer.java#l156
但请注意,这需要有关 JVM 本身的基础知识,因此不会有一个简单的代码 sn-p 可以在您期望的上下文中执行您想要的操作。
希望对你有帮助。
【讨论】:
以上是关于更改 Eclipse 中调试视图的内容的主要内容,如果未能解决你的问题,请参考以下文章