简体   繁体   中英

How to force IntelliJ to only step into my source code?

I have a Spring MVC project that I'm trying to debug using IntelliJ.

If I set a breakpoint in my Controller code, the debug stops at the appropriate place. That particular line has more of my own code in another bean. I'd like to be able to step into the code. If I "step into" immediately after the breakpoint riggers, it steps into Spring's AOP framework code.

在此处输入图片说明

If I trigger the same breakpoint and "smart step into" immediately, it puts me at line -1 of the source file (apparent in the graphic above). What is this line -1 signify? If I do "smart step into" again, I end up at the line after my original breakpoint, but never having been placed inside the method I wanted to step into.

I have tried putting the Spring AOP package into the Debugger setting Do not step into the classes . However, I also ended up having to put in transaction classes as well as several others. In the end, I put all of Spring into the list ... and SLF4J and some JDBC drivers.

How can I just get IntelliJ to only stop in my project source code unless I use something like "force step into"?

Currently there is no overall option to only target user code (like Visual Studio's 'Just My Code' ).

The best way to have the same behavior is to exclude specific code classes or packages (it is possible to setup filter patterns for class packages via wildcards) that will not be 'stepped into'.

This can be achieved within the Settings/Preferences , in the Debugger/Stepping options.

Spring's AOP may be among the worst offenders.

The OP suggested that they had already done this, but here's how you can disable stepping into specified classes (IntelliJ ULTIMATE 2018.2):

File -> Settings... -> Build, Execution, Deployment -> Debugger -> Stepping

... Do not step into the classes -> Add Pattern -> Enter the filter pattern:

... ... org.springframework.aop.*

Notice that you can use wildcards to disable entire namespaces -- so for example, assuming that your organization's namespace starts with com , you can get most of the way there by blacklisting org.* .

IntelliJ ULTIMATE 2018.3 Using File -> Settings -> search 'Step' as follow: 在此处输入图片说明

Another way in "Ultimate 2019.1" (may be also in previous versions):

When you're right now debugging you can make a right mouse click on a class in the view "Debugger" - "Frames". Then you can select "Add stepping filter..." and adding for that class a new step filter. Of course you can here also change the new step filter, using place holder "*" and so on ...

完成上述更改后,停止您的应用程序并再次重新启动到调试模式以生效。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM