current position：Home>It's great to use debug a!
It's great to use debug a!
2022-02-04 16:45:22 【A Remus】
1. Debug brief introduction
Why use Debug?
see 12 The month is about to pass , Zhang San is lying on the bed in the university dormitory , At the moment, he is both happy and worried .
I'm happy that I can spend the new year with my girlfriend soon , Worry about yourself java There are a lot of mistakes in the final homework .
Zhang San's English is not good , I can't understand the error reporting statement of the console , So the more you think about it, the more upset you get .
All of a sudden , Zhang San seems to have inspiration , open IDEA Knocked excitedly . The roommate who is participating in the five black , I'm curious , All ran to see his computer ：
It turned out that Zhang San was copying and pasting a pile of printed statements . A roommate really can't see it anymore , Ask him ：“ Why don't you debug the program Debug ?”
“ You write so much system sentence , No trouble ？ Finally hand in your homework , You have to delete these printed statements one by one , It's a waste of time .”
So let's write a program and don't write a pile of... As soon as we encounter problems system Print statement , It's a real waste of time .
While using Debug You can track the execution of a program , Quickly locate the location of program exceptions , Help us quickly find the wrong code .
2. Turn on Deubg
2.1 Debug Interface in mode
Let's take a look first IDEA in Debug Interface in mode ：
- With Debug Mode start service . In development , I usually just Debug Mode run program , Easy to debug code at any time .
- The breakpoint , We can directly click Settings... On the left side of the row number column , You can also use shortcut keys Ctrl+F8 Set or cancel breakpoints .
- Debug window ： When the request reaches the first breakpoint ,Debug The window will be activated .
- debugging Debug Button ： We mainly use these buttons during debugging , Shortcut keys can be displayed on the mouse hover button .
- Debug Service button ： Here we can open 、 close Debug Service etc. .
- Method area ： The methods executed during debugging are shown here .
- Parameter area ： The values of all parameters before the current breakpoint will be displayed here .
2.2 Turn on Debug
First set a breakpoint , And then to Debug mode ：
notes ： We can also add / Delete breakpoints .
3. Debug Debugging buttons commonly used in
3.1 Jump to the line of currently executing code
Let's first set a breakpoint on a page , Then switch to other pages , Click this button , I found that I jumped to the line where the code was executed ：
3.2 Step over
Step over Just go down step by step , Skip all methods ：
In the above example, even if you encounter system Printing method and method test1 Method , Will also cross over and continue to carry out .
3.3 Stepping into
If you encounter
Customize Methods , Access to method interior , Will not enter the JDK Methods in class libraries .
In the example above , Yes system Method will automatically cross over , But I encountered a custom method , Then it will enter the method and execute , After execution, it will return to the calling place of the method .
3.4 Forced entry
No matter encounter JDK Class library method or custom method , Will enter the method and execute .
In the above example, no matter what happens JDK Class library system The method is still user-defined test1 Method , Will enter the method and execute .
3.5 Step out
Step out Is to return from the inside of the incoming method to the method call .
In the above example, we enter test1 Inside the method , When you click Step out After button , Back to calling test1 Method place .
3.6 Fallback breakpoint
Fallback breakpoint It means that you can go back to the call of the specified method .
In the above example, we executed test1、test2、method2 Method , But we can choose to go back directly to test1 Method .
The difference between stepping out and fallback breakpoints ：
- They all go back to the call of the method
- Stepping out can only return to the call of the current method
- The fallback breakpoint can return to the call of the specified method , Provided that the method has been executed .
3.7 Position at the cursor
If we write hundreds of lines of code , It also takes time to implement step by step . At this time, we can first put the cursor in a specified position , And then click
Position the cursor Button , At this time, the code will immediately execute to the cursor .
In the above example, we move the mouse cursor to a line below , And then click
Position the cursor Button , The code immediately executes to this line .
3.8 Calculation expression
Calculation expression It can help us calculate the return value of some expressions .
As you can see from the example above , We can use some custom parameters to calculate the return value of some methods before calling them .
4. View parameters
4.1 The line where the parameter is located will be followed by
4.2 Hover the cursor to see
The cursor hovers over the parameter , Displays information about the current variable , I use this method a lot , Particularly convenient .
4.3 stay Variables Check it out
All variables in the current method are shown here .
4.4 stay Watches Check it out
stay Watches in , Click on New Watch, Enter variables to view :
5. Conditional breakpoints
Sometimes our code contains a lot of for sentence , But when using breakpoint debugging, it will be executed many times . At this time, we can choose the breakpoint , Right click to set a condition , Only when this condition is met , The breakpoint will execute here .
In the above example, we set a condition for the breakpoint ：i==50, So Debug When running the program in mode, we found that at this time i Namely 50.
6. Debug Service setting button
6.1 Execute to the next breakpoint until the end
The function of this button ： If there is a breakpoint below , Just jump to the next breakpoint . without , The program execution ends .
6.2 Break mute
Sometimes we know the result when we reach a certain step , But there are a lot of breakpoints behind . I want these breakpoints to fail , But I also want to use these breakpoints for the second tracking , It can be used at this time
Break mute .
6.3 see / clear breakpoints
We need to clear all breakpoints after executing the code , But it's a waste of time to clean up one by one , At this time, you can use this button to view all the set breakpoints , Or clear all breakpoints .
6.4 Return to the first breakpoint
The code executes to a certain line and wants to return to the first breakpoint ：
7 Multithreaded debugging
because CPU The order of execution threads is random , But we can customize the execution of the next thread by using breakpoint debugging .
First, set the breakpoints of both threads to thread mode ：
Then select the specified thread in the method area to execute ：
author[A Remus],Please bring the original link to reprint, thank you.
The sidebar is recommended
- 14 ways and 34 cases: compare SQL and learn pandas operation
- It's cool to play Ubuntu like this!
- Debug debugging
- How to avoid SQL injection vulnerabilities
- This pandas exercise must be successfully won
- This open source test artifact has fulfilled my dream of playing games without hands
- How do I debug webpack running problems
- Sorting out of hot issues and solutions of Kunpeng in recent 3 months
- After learning eclipse, all the girls in the class came to play with me!
- Working principle of sentinel fuse current limiter
guess what you like
The implementation principle of "coverage detection", that's it?
React other extensions
This wave of react is really targeted
Investigation and Reflection on the whole process of a server being hacked
A picture to understand the heavy release of "cloud native" at the cloud habitat Conference
Practice of tdengine in Hongyuan Taiping quantitative investment
It's said that blogging is simple. Who knows what back-end programmers have to experience!
Unity navigation and pathfinding - off meshlink
Systrace response speed practice 3: response speed extension knowledge
Practice of improving web user experience design
- A web
- Cve-2017-10271 vulnerability recurrence and analysis
- What is single chip microcomputer? Play is time!
- How to write fluent code
- Mobile Zhihu daily (including source code and deployment steps)
- Comparative learning
- Linear table
- Teach you how to apply for free SSL certificate for domain name
- Ks001 air ticket reservation system based on springboot
- Kill PowerDesigner! This Chinese open source database design tool is really fragrant!
- Cloudera CDP enterprise data cloud test opening guidance
- [Japanese arch stroke] react Beginner Level 4 life cycle
- 3. Kubernetes cluster installation
- Pre training and fine tuning of Bert model
- Pandas table beauty skills
- See vit's understanding and harvest again after three months
- Exploration of AI in iqiyi video advertising
- Harvest and flag in 2021
- WebView second opening scheme exploration
- Usage Summary of edit box in QT
- How many of the 6 ways of breaking points in JS have you used?
- Four skills of pandas row column conversion
- Easy to use shortcut key of vscode [motion picture + scene analysis]
- Kill xshell? This open source terminal tool is even higher!
- Git credential store
- How to use apt command management pack in Linux