首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AspectJ调试Eclipse单步执行

使用AspectJ调试Eclipse单步执行
EN

Stack Overflow用户
提问于 2013-02-08 06:20:21
回答 2查看 3.3K关注 0票数 5

我已经安装了带有“AspectJ开发工具”插件的Eclipse。我正在尝试调试一些使用AspectJ的代码并逐步执行它,但它无法匹配源码行,因为AspectJ在编译时添加了额外的内容。似乎没有其他人抱怨这似乎是一个主要的缺陷(无法调试!),所以我希望我只需要调整一些东西来使它工作。我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-13 07:46:00

是的,这是AspectJ的一个bug。单步执行通知时附加了不正确的文件属性。最好的解决办法是委托给建议中的适当方法,这样行号就会对齐。

票数 2
EN

Stack Overflow用户

发布于 2015-09-18 18:25:27

到目前为止,我已经遇到了您仅使用@Around建议描述的行为。@Before@After的建议从来没有混淆过我使用的调试器。

默认情况下,@Around内联在编织类中(包括目标类和方面本身)。这与我尝试过的其他建议不同。内联使得调试器很难(如果不是不可能)跟踪流。

您可以在AspectJ编译器中禁用内联,它将以调试器友好的方式生成编织类。禁用内联可能会产生较慢的代码和更多的编织类(创建辅助类)。

maven的方式:

代码语言:javascript
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <source>${java.compiler.source}</source>
        <target>${java.compiler.target}</target>
        <complianceLevel>${java.compiler.target}</complianceLevel>

        <!-- Avoid some optimizations that make debugger useless. -->
        <XnoInline>true</XnoInline>
    </configuration>
</plugin>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14762142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档