【IntelliJ IDEA】Debug调试的使用记录

简介: 【IntelliJ IDEA】Debug调试的使用记录

Debug调试是否能行云流水的使用,是鉴定你会不会使用一个IDE的最基本的标准。

这里把Idea的debug使用流程走一遍。

1.设置断点

【在你想要设置断点的代码行左端 鼠标左键点击一下即可设置成功】

@RequestMapping("/login")
@ResponseBody 
public string hello(HttpServletRequest request, HttpServletResponse response, User user){
System.out.println(user);
if(!"".eguals(user.getUsername()) && !"".eguals(user.getPassword())){ 
request.getSession().setAttribute( s: "user",user);
return  "1";  
}else{
return "2";
}
} 
}

2.用Debug模式启动调试模式

package com.sxd.controller;
Himport com.sxd.entity.User;
import org.springframework.stereotype.Controller:
import org.springframework.web.bind.annotation.RequestMapping importorg.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest; Gimport javax.servlet.http.HttpServletResponse;
@Controller
public class ViewController {
@RequestMapping("/login")
ADacmonceD.

启动成功后,发送请求进入设置断点的方法中

loginjsx  OMyConigiwa 道helolsa  Mghrmerceptprdavo GviewConolerlaw 
orderdisoount gnideaProjects),A'orderdiscount package com.sxd.controller  
b bm jdea
w lmarc pi .men import import com.sud.entity.user org:springfranewort. stereotype.controller; import orm.springframewort.web.bind.eemotation.RequestHapping v imain
import org:springfranewor.web.bind.annotation.ResponseBody
7 hajuun
import javan.semvlet.http.HttpservletRequest;
v  comn D 进入方法后,会停留在断点行 import jerar.servlet.http.HttpServlethesponse 
中bmcontroller @Controller 
3MainController 1广  public class Viewcontroller { 
@viewController
gRequestHlapping(“/login")
b be atisy  PtesponseBody 
w taisterceptor
ublic string helloiHttoserrletRecuest reowestHttoSeryletResoonse mesoonse, User userlf erwest; Re 05882 
G Mdnterceplpr  System. -printin(userl:wsen: useng56e5  
k bm util GürdardincountApplicwtion return request.getSession().setAttribute( s: "user",userl; if(l:equ1s(user:getUsemane)a T',equsls(user.getPa5图会显示当前行以及之前行中变量的值
wiresources jelse(  
neturm “2”;
bmtemplaten国 123.png@ hello当前断点所在方法17 当前斯点所在行数
看application.properties ViewConbraller 当前断点所在类  
wiawsbapp
> bootstrap-3.3.7
WewConyolershelol
DebugOrderdiscou tApplcabon
Debgg console +*Endpoi  Frames  Variublen 
 "hto nio-a030-xec-a"64 a8g in arou.. tp&user=qUser@50051 
elle17 wewGoreoler   thin = [ViewControllerGG602) R当前方法参的以及值都在这里显示  
ke0-1NainMethedAceeor @ request = (RequesFacade@5603} 当前行中对象以及值都在这里显示 
ckee 62, NativeM etho daccessoeimel Opon=RenonanEaceda05504 
oke43.0mle  @user=QUser@50051 
ohe40, Menod
vole:305. invpcablwHandlerMethed
woktforReoue133. IvocableHanderMethod ova
ladHard 门bi.  bbHar kndh  
ndkintama:738.ReaestM adie85 ahstrachandeMett 到达本断点之前,都执行了哪些方法,越靠下的方法越早被执行过 

3.单点调试

1》Step Over 【快捷键:F8】相当于eclipse的F6

点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,不会进入被调用的方法中,然后到下一行)

40b6e3d3a618ab6e5a984af718c6670.png

效果如下图

public String hello(HttpServletRequest  request,  HttpServletResponse response: User  user  request: Reques 
System.out.println(user);
if(!"".equals(user.getUsername())&& !"".equals(user.getPassword())){  user:User@5605  
request.getSession().setAttribute( s: "user",user);
return  "1";  

2》Step Into【快捷键:F7】相当于eclipse的F5

点击之后,进入本行中的代码中,也就是会进入调用的方法中

f8927340e69fc9a2b86de4dad8025a4.png

3》Force Step Into 【快捷键:Alt+Shift+F7】

强制进入代码,在大部分情况和F7效果相同,都是要进入调用的方法中,每点击一次,都会往下执行一行,走完被调用的程序自动返回到被调用的代码原始点

 fceb6aca576701b2d09131f3494d55a.png

4》Step Out【快捷键:Shift+F8】相当于eclipse的F7跳出函数

点击之后,会跳出本方法到调用本方法处的下一行,也就是跳过本方法

 5e2c81f711c51656dcf967fdf4bc8b2.png

5》Drop Frame【快捷键:】

点击该按钮后,你将返回到当前方法的调用处重新执行,并且所有上下文变量的值也回到那个时候,回滚的效果

d6f66f7514170f614e55c46e86f89cd.png

6》【快捷键:Alt+F8 】  查看到当前断点时,自定义选中的值

user输入 回车即可
Use Ctr +Shift+Enter to add to Watches
Result:
rresult = {User@5605}
username =“123" password ="456"
user.getUsername()
Result:
result="123"
value = {char[3]@5654}
1 = '1'491 = '2' 50四 2= '3'51 hash = 0

290479348919386881.jpg

user.getUsername().toString();  可以上下选择  
运行哪段你写的代码
Result:
/result ="123"
value = {char[3]@5654 hash = 0

同样。你可以在右侧添加你想要查看的变量的值,不用快捷键

点击  添加 你想要查看的值 回车即可 
user ={User@5576} user.getusername()
this ={ViewController@5572
request = {RequestFacade@5574} response = {ResponseFacade@5575) user =(User@5576}
mew spring org.s
Variables
user ={User@5576} 
user.getUsername()="123"
reflect)  value = {char[3]@5605 
eflect) '49 
un.reflect) 四 1= '2'50  不想要的话 ,可以把添加的变量值 删掉 
2 ='3'51
.springframewc  hash = 0  
nod (org.spring this = {ViewController@5572}  
rMethod (org.s  request={RequestFacade@5574}  

7》【快捷键:Alt+F10】    显示你当前执行的断点

  @ResponseBody 
public string hello(HttpServletRequest request, HttpServletResponse res
System.out.println(user); user:User@5605
  if(!"".equals(user.getUsername()) && !"".equals(user.getPassword()) 
request.getSession().setAttribute( s: "user",user);
return  "1";  
}else{  

8》【快捷键:Alt+F9】 执行代码运行到光标所在的位置

如果代码逻辑不会走到光标所在行,会结束代码运行或跳转到下一个断点处

4.多断点调试

设置两个断点,如下

14  @RequestMapping("/login") 
@ResponseBody
16  public string hello(HttpServletRequest request,HttpServletResponse response, User user){request: RequestFac 
17  System.out.println(user); user: User@5576 
18  if(!"".equals(user.getUsername()) && !"".equals(user.getPassword())){ 
19  request.getSession().setAttribute( s: "user",user); 
20  return  "1";  
}else{
return  "2";  

1》Resume Program【快捷键:F9】跳到下一个断点

如果下面没有断点了,那就执行完程序

 05cdcc98ee16ef4526d8872abde5347.png

2》查看历史断点

77629cd880c2f42f3b55dafe27baacb.png

可以看到如下,当然也可以再左侧删除掉你不想要的断点  选择要删除的断点,点减号就好

71a79dcce647c4368a1e93face81d1a.png

3》屏蔽所有断点

2f1a667d5d4a729636f1cbf94324d65.png


目录
打赏
0
0
0
0
9
分享
相关文章
只用正版!教你5个方法,白嫖JetBrains家族的所有产品,包含:IntelliJ IDEA、PyCharm、WebStorm、CLion、Rider
程序员晚枫分享了5种官方认证的免费使用JetBrains家族产品的方法,包括内容创作者计划、开源项目支持、教育许可证、用户组支持和开发者认可计划。这些方法帮助个人开发者与小型团队合法获取强大开发工具,如IntelliJ IDEA、PyCharm等,降低开发成本,提升效率。同时提醒大家遵守使用规范,尊重知识产权。
213 13
|
9月前
|
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
316 0
IntelliJ IDEA调试技巧:提升你的调试效率
调试是软件开发中不可或缺的一部分,而IntelliJ IDEA提供了一套强大的调试工具,可以帮助开发者更高效地定位和解决问题。本文将分享一些高手必会的IDEA调试技巧,让你在调试时如虎添翼。
132 0
IntelliJ IDEA高效调试技巧:提升你的调试效率
在Java开发中,调试是开发过程中不可或缺的一部分。IntelliJ IDEA作为一款强大的IDE,提供了丰富的调试功能,帮助开发者更高效地定位和解决问题。本文将分享一些高手必会的IDEA调试技巧,让你的调试工作事半功倍。
97 0
IDEA——使用JavaScript Debugger调试代码
IDEA——使用JavaScript Debugger调试代码
76 0
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
220 2
|
9月前
|
idea远程debug应用
idea 中debug现场部署的Java应用
100 1
|
10月前
|
IntelliJ IDEA 2023.3 最新变化2
IntelliJ IDEA 2023.3 最新变化
154 1
|
9月前
Idea 进行远程服务器debug操作
Idea 进行远程服务器debug操作
617 0
IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
374 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等