当前位置:网站首页>Learn to use the idea breakpoint debugging tool
Learn to use the idea breakpoint debugging tool
2022-07-03 04:46:00 【Program Xiaoxu】
IDEA Breakpoint debugging
In the process of breakpoint debugging, it is always running , After setting a breakpoint on a line, it will stop here . So as to find the problem . Be commonly called Debug
Breakpoint debugging shortcut
- F7( Jump into method )
- F8( skip — Step through the code )
- shift+F8( Jump out of the way )
- F9( Step through the code Resume)
Breakpoint debugging case
Case 1 is executed circularly
package com.dzu.cn;
/** * @Author ChenRuXu * @Date 2022/2/14 22:23 * @Version 1.0 */
public class Debug01 {
public static void main(String[] args) {
// Demonstrate line by line execution
int sum=0;
for (int i=0;i<5;i++){
sum+=i;
System.out.println("i="+i);
System.out.println("sum="+sum);
}
System.out.println(" sign out for");
}
}
Click the left mouse button on the desired line and then perform breakpoint debugging .
After performing breakpoint debugging, the following page appears
Be careful :F9 Resume You can dynamically add breakpoints, which still take effect during execution 
F8 step over Skip step by step 
F7 step into Jump into method 
force step into Force into the method body 

here F7 We can see clearly the execution process of the program and the changes of variables .
Case 2 : Array out of bounds execution exception
package com.dzu.cn;
/** * @Author ChenRuXu * @Date 2022/2/14 22:48 * @Version 1.0 */
public class Debug02 {
public static void main(String[] args) {
int[] arr ={
1,10,-1};
for (int i = 0; i <=arr.length ; i++) {
System.out.println(arr[i]);
}
System.out.println(" sign out for loop ");
}
}

Case 3 tracking source code
Observe Arrays.sort(arr) How it's sorted
package com.dzu.cn;
import java.util.Arrays;
/** * @Author ChenRuXu * @Date 2022/2/14 22:56 * @Version 1.0 */
public class Dubug03 {
public static void main(String[] args) {
int arr[] ={
1,-1,10,-20,100};
Arrays.sort(arr);
for ( int i= 0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}
Learn to use breakpoints in debugging F7 Jump into the method body

Use F7 Later, we found that it did not enter the source code . Here is our solution .
Method 1 :force step into Use enforcement to enter
Method 2 adopts configuration method to realize
Find the option of breakpoint debugging in the settings .

Will be one of the java.* ,javax.* Uncheck the .
By default, it is not allowed to enter the source code
At this point we can use dubug To enter the source code debugging .
On this basis, if we are using F7 Will continue to enter .

This is where we really implement the sorting method ( Double quick row )
After entering the final source code , reflection How to exit to the main method
Jump out of the previous method first We need to use shift+F8( Jump out of the way ) Jump to the place where the call is sorted and step back to the main method

Case four :F9 resume And dynamic breakpoints
idea Support dynamic breakpoints during the running process
package com.dzu.cn;
import java.util.Arrays;
/** * @Author ChenRuXu * @Date 2022/2/14 22:56 * @Version 1.0 */
public class Dubug03 {
public static void main(String[] args) {
int arr[] ={
1,-1,10,-20,100};
Arrays.sort(arr);
for ( int i= 0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
}
}

Use F9 It will go directly to the position of the second breakpoint . Then we dynamically add a breakpoint .
Now click F9 It will go to the position where the breakpoint is dynamically added 
summary
Debugging with breakpoints is , When we analyze the source code for troubleshooting and learning in the future, it is one of the essential contents .
边栏推荐
- Apache MPM model and ab stress test
- Design and implementation of JSP logistics center storage information management system
- [set theory] binary relationship (special relationship type | empty relationship | identity relationship | global relationship | divisive relationship | size relationship)
- Ffmpeg tanscoding transcoding
- String matching: find a substring in a string
- MC Layer Target
- Day 51 - tree problem
- 普通本科大学生活避坑指南
- 【XSS绕过-防护策略】理解防护策略,更好的绕过
- LVS load balancing cluster of efficient multi-purpose cluster (NAT mode)
猜你喜欢

Human resource management system based on JSP

data2vec! New milestone of unified mode
![[tools run SQL blind note]](/img/c3/86db4568b221d2423914990a88eec2.png)
[tools run SQL blind note]

When using the benchmarksql tool to preheat data for kingbasees, execute: select sys_ Prewarm ('ndx_oorder_2 ') error

关于开学的准备与专业认知

《牛客刷verilog》Part II Verilog进阶挑战

STM32 reverse entry

A outsourcing boy's mid-2022 summary

Symbol of array element product of leetcode simple problem

论文阅读_中文医疗模型_ eHealth
随机推荐
Market status and development prospect prediction of the near infrared sensor industry of the global Internet of things in 2022
The reason why the entity class in the database is changed into hump naming
[PHP vulnerability weak type] basic knowledge, PHP weak equality, error reporting and bypassing
Basic use of continuous integration server Jenkins
Asp access teaching management system design finished product
Php+mysql registration landing page development complete code
Jincang KFS data bidirectional synchronization scenario deployment
FFMpeg filter
论文阅读_中文NLP_ELECTRA
I stepped on a foundation pit today
Thesis reading_ ICD code_ MSMN
Handling record of electric skateboard detained by traffic police
Summary of training competition (Lao Li's collection of questions)
JVM原理简介
Market status and development prospect prediction of global SoC Test Platform Industry in 2022
Pyqt control part (II)
LVS load balancing cluster of efficient multi-purpose cluster (NAT mode)
A outsourcing boy's mid-2022 summary
Human resource management system based on JSP
Kingbasees plug-in KDB of Jincang database_ exists_ expand