【发布时间】:2014-01-01 17:30:54
【问题描述】:
我有一个 Spring MVC 项目,我正在尝试使用 IntelliJ 进行调试。
如果我在控制器代码中设置断点,调试会在适当的位置停止。该特定行在另一个 bean 中有更多我自己的代码。我希望能够进入代码。如果我在断点绑定后立即“进入”,它会进入 Spring 的 AOP 框架代码。
如果我立即触发相同的断点并“智能单步执行”,它会将我置于源文件的第 -1 行(如上图所示)。这条线 -1 表示什么?如果我再次执行“智能步入”,我将在原始断点之后的行结束,但从未被放置在我想步入的方法中。
我尝试将 Spring AOP 包放入调试器设置中不要进入类。但是,我最终还不得不放入事务类以及其他几个类。最后,我把所有的 Spring 都放到了列表中……还有 SLF4J 和一些 JDBC 驱动。
我怎样才能让 IntelliJ 只在我的项目源代码中停止,除非我使用“强制步入”之类的东西?
【问题讨论】:
-
在
Do not step into classes设置中,您可以使用通配符声明模式。这可能有助于快速排除像org.*和com.*这样的包,假设你的不是从这些包开始的。如果您能够在这些模式中使用否定 (!),这将是一个完美的解决方案 - 我建议将此作为功能请求发送。 -
有相关feature request for IntelliJ IDEA,请投票。 - IDEA-54807允许项目设置有自己的Debug Stepping,并添加[Only Step into the classes]以提高生产力