debug怎么用,怎么使用debug调试代码

引言代码Debug调试是研发工程师日常工作中必不可少的重要组成部分。进行代码Debug调试的目的无非就两个,一个是自我检查代码逻辑是否有问题,便于自己将Bug消灭在测试介入之前;另一个是进行线上问题排

引言

代码Debug调试是研发工程师日常工作中必不可少的重要组成部分。进行代码Debug调试的目的无非就两个,一个是自我检查代码逻辑是否有问题,便于自己将Bug消灭在测试介入之前;另一个是进行线上问题排查定位,找到实际在跑业务的过程中出现的Bug。但是无论是哪个目的,高效率的进行代码Debug调试必定会提高我们码代码的效率以及定位问题解决问题的效率,从而实现代码白盒化自我观测。本文主要罗列了10个常用的Debug技巧,可以让我们定位代码问题事半功倍。

常用Debug技巧

回到上一步

进行代码调试的过程中,有的时候由于自己点击下一步的速度比较快,可能之前打得断点命中后直接跳过去了进入到某个方法的内部,但是我们还是想看回头看之前断点中的情况,那么此时可以使用这个回到上一步功能即Drop Frame,快速定位到之前的代码运行位置。我们都知道JVM通过栈帧保存方法调用地址的,因此实际上这部分的功能可以理解为舍弃当前的调用栈回到原来的调用处。

字段断点

当我们需要知道类中某个属性值到底什么时候被修改的时候,如果要从最起始的地方进行调试实在太过麻烦,因为有的时候我们可能并不知道属性赋值的起始点到底在哪里,特别是在阅读框架源码的时候。那么此时可以尝试在类的字段进行断点,勾选上在属性访问或者属性修改的时候将运行到属性修改发生的地方或者属性被访问的地方,这样可以大大提高我们找到属性修改再沈地方被修改的效率。

Stream调试

怎么使用debug调试代码,Lambda表达式是JDK1.8的新特性,在实际的项目编码也会被经常使用到来简化一些循环操作的代码。但是Lambda表达式并不好进行调试,因此不太方便查看stream流内部的值运行情况,此时我们需要借助于Java Stream Debuger这个插件,这样我们在进行stream流debug的时候就可以看到内部各个值执行的流程以及最终结果,方便我们进行问题定位。

表达式计算结果查看

在进行Debug的过程中,在代码的右侧一般会默认展示一些变量当前的值,但是对于一些表达式的值并不会默认展示,而我们有的时候需要关注一下表达式在计算过程中的数据是否正确。此时便可以通过鼠标选中需要计算的代码表达式然后结合(Alt+F8)快捷键查看表达式的计算结果。

debug筛选条件

异常断点

进行断点调试的时候,除了阅读框架源码理解技术原理或者熟悉新业务,大部分情况进行断点调试都是出现了异常需要进一步定位具体原因。但是一般情况下当发生异常的时候,抛出来的异常要么被框架捕捉了,进入框架的源码当中,要么被自己业务代码中的try catch捕捉了,影响问题定位。因此我们想要当异常发生的时候可以停在抛异常的地方,方便我们进行问题定位。

1、在任意断点处点击鼠标右键进行更多debug设置,找到Java Exception Breakpoints添加自带的Exception类型或者自定义的业务异常。

2、此时进入debug模式运行代码,当代码逻辑产生之前添加的异常类型后,代码会停留在发生异常的地方,这样异常调试就更加方便了。

远程调试

1、在debug模式配置中选择Remote模式

2、配置远程环境

Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。Debug [[drive:][path]filename [parameters]]参数 [drive:][path]filename 指定要测试的可执行文件的位置和名称。parameters 指定要测试的可执行文件所需要的任何。

服务以Jar形式运行

debug怎么用

通过命令启动服务实现端口绑定

java java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar business.jar 服务在Tomcat容器中

debug怎么用

tomcat 的bin目录下的catalina.sh文件中增加配置

远程调试需要确保本地代码和远程代码的完全一致,否则代码行数匹配不上无法达到调试的效果。

强制返回

我们进行debug问题排查,有的时候只是想确认业务逻辑有没有问题,并不想真正去执行一些耗费资源、或者改变数据的操作,那么在这种场景下,我们可以借助于强制返回的功能,不执行方法后面的代码而指定一个返回值来继续后续的业务逻辑debug。

从运行结果可以看得出来,加法的代码逻辑实际并没有执行,而是通过强制返回后直接执行了后面的业务逻辑。

运行时修改变量

输入新的变量值后进行回车设置,如此变量值被改变了,原先的业务逻辑发在条件发生改变之后也发生了改变。

多线程调试

Idea默认的Debug模式下会阻塞所有的线程,只有当当前的调试线程逻辑走完之后才会进入其他的线程。那如果想要调试多线程场景下的业务逻辑应该怎么办呢? 实际上在设置断点的时候,鼠标右击断点,我们可以选择Thread调试模式。

这样我们在Debugger中就可以通过切换不同的线程来进行业务逻辑调试。

常用快捷键 1、F8:Step Over 程序执行到下一步

2、F7:Step Into 进入方法内部

3、 Alt+Shift+F7:强制进入方法内部,主要针对F7无法进入的方法内部的情况

4、Shift+F8:进入方法之后,不希望再一步步执行剩下的代码,可以通过此快捷键跳出

其实严格来说,Debug是在DOS方式下使用的程序,我们在进入Debug前应该先进入DOS。而就目前我们用的计算机来说,进入DOS有以下两种方法:1.重启计算机,进入DOS,此时进入的是实模式的DOS。2.在Windows界面进入DOS,此时进入的。

5、Alt+F10:如果当前鼠标光标不在代码运行处,通过此快捷键可以将光标回归到代码运行处

debug怎么用

6、Alt+F9:鼠标光标在何处,可以直接通过此快捷键跳转运行到光标处,无需断点

7、Alt+F8:计算表达式的值,用鼠标选择需要计算的表达式之后,通过此快捷键可以计算表达式的值

8、Ctrl+F5:比如改了某些代码需要重新运行程序,可以使用此快捷键

9、F9:如果一段代码中打了两个断点,当debug到第一个断点后,按F9后代码运行到第二个断点处,如果再按F9则执行完所有的代码,也就是说如果当前断点后还有断点则可以通过F9跳转,如果没有则执行完代码逻辑。

(2)格式2:L装入地址 这种方式可把指定文件装入内存,装入的文件可在进入DEBUG时指定亦可用N命令建立,格式为-n文件名: 例1DEBUGtan.pas -L100 例2DEBUG -ntan.pas -L100 须知:L命令只能读取逻辑扇区,不能读取硬盘分区表 L命令中所。

10、Ctrl+Shift+F8:查看所有的当前所有的断点

上一篇 2023年02月03 08:26
下一篇 2023年02月04 17:57

相关推荐

  • wps怎么复制一整页,wps带格式整页复制

    wps带格式整页复制,有时候我们要将电子表格中多个不连续数据转移到另外一个表格中,也许你还在一个一个的复制粘贴。但是,当你会使用剪贴板之后,你就可以一次性完成多个复制粘贴了。我们以WPS2019为例,

    2023年01月30 226
  • 怎么更改后缀,000文件如何改后缀打开

    电脑上怎么更改文件格式?大家在办公生活中会应用到不同的文件格式,不同的格式也有着不同的优点和限制,在不同的应用场合下,000文件如何改后缀打开,大家需要经常对不同的文件进行转换,比如在电脑中编辑用的w

    2023年02月04 277
  • 爱订不订怎样下载

    随着民宿的普及与发展,越来越多的人在出行住宿的时候会优先考虑民宿。那么,国内现有的民宿预订平台中,哪个才是更适合的呢?以下,笔者挑选了国内三家主流民宿预订平台,分别从房源量、下载数据、平台活动以及使用

    2023年01月08 243
  • 下载的文件怎么解压

    现在从网上下载的综艺、电视剧、电影等类型的视频文件大多文件都比较大,占用大量存储空间还会在分享给他人的时候,需要占用更多的时间,那么有什么方法能够在不影响画质的情况下缩小视频大小吗?给大家分享一款视频

    2023年01月17 213
  • 淘宝差评怎么删除

    www.yidaifaw.cn易代发礼品网www.yidaifaw.cn1.通过官方客服电话或在线方式与客服人员沟通。2.提供给商家一份截图证明,截图内容包括商家的具体信息、与投诉相关的问题、投诉的具

    2023年01月17 242
  • 抖音怎么赚钱,新手怎么在抖音上赚钱

    新手怎么在抖音上赚钱,抖音从头条开始,已经把算法研究到极致,他们用最顶级的工程师研究怎么让用户沉迷,怎么把用户的需求送达手机端,盘靓条顺的小姐姐加上动感新奇的音乐,刺激用户的多巴胺,一条接一条的刷不停

    2023年01月09 215
  • 台湾电话怎么拨打,想要拨打台湾的电话怎么打呢

    市台办坚持常态化开展“我为台胞办实事”工作,充分发挥台胞服务电话作用,积极宣传涉台政策,落实落细惠台利民措施和同等待遇,努力在政府和台胞间架设沟通桥梁,畅通台胞诉求通道,解答台胞日常咨询及困难诉求,想

    2023年01月20 231
  • qq厘米秀怎么开启,新版qq厘米秀

    [闽南网]qq厘米秀用户通过抓好友可以快速的提升胶囊星级,不过也是比较消耗时间的,玩家通过开启自动抓好友功能可以更快的升胶囊星级,新版qq厘米秀入口,下面小编为大家带来qq厘米秀自动抓好友设置方法。,

    2023年01月21 295
  • 华为怎么刷机,华为怎么刷机

    此次刷机,我们选用的是Mate40Pro全网通版8GB+128GB(NOH-AN00)。关于这部手机的功能和性能,网上有很多的评测,这里就不再说了。以华为P30为例,刷机的做法如下:1、直接手机关机以

    2023年01月15 303
  • 怎么登陆2个微信

    很多用户都有不止一个微信账号,有的用于私人聊天,电脑怎样登陆两个微信号,有的用于工作上交流,生活与工作分开是现代人比较追求的态度,而因为有多个账号导致总是来回切换特别繁琐,如何能同时使用多个账号登录呢

    2023年01月19 293
  • 上网找朋友怎样方便,找呀找呀找朋友

    如果问你的手机每天必用的APP是哪个?微信——肯定榜上有名。但天天使用微信,你对它的功能真的都很了解吗?图片来源网络今天才知道微信长按2秒,会有这5个隐藏小功能,很多人都不知道!看完以后,我卸载了好几

    2023年01月03 269
  • gif怎么做,免费gif动图制作软件

    制作gif怎么做?我们常常会在日常的聊天中发送一些表情包来表达我们的心情,一个好的表情包不仅可以活跃气氛,而且还可以言简意赅的表意。以前在QQ群里大家喜欢完斗图,免费gif动图制作软件,最后就会有人胜

    2023年01月15 241
  • 怎样面对面建微信群,如何建一个空群让别人扫码进群

    如何建一个空群让别人扫码进群,2022年12月8日上午,由长远社区主办,龙泉驿区安家社会工作服务中心承办的“赋能•践行”步履长远--赋能•小组研讨会在长远社区蔚蓝花城小区开展。活动共邀请40余名小区居

    2023年01月08 214
关注微信