精华内容
下载资源
问答
  • 众所周知,断点调试是一个合格程序员必备的一种技能,断点调试可以帮助我们查看程序运行期间每一步各变量的值,学会调试可以帮我们节省很多排查问题的时间,下面我们将来介绍一下Android Studio调试的方法和技巧。...
  • 下面小编就为大家分享一篇js断点调试心得,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • VUE断点调试技术 大家都知道后端开发是可以设置断点调试运行的,现在前端开发也可以和后端开发一样设置断点调试运行了
  • js断点调试经验分享

    2020-11-27 06:32:14
    我们给大家详细分析了一下在JS调试的时候经常用到的断点调试,并把经验和技巧做了总结,以下是全部内容: 1.断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开...
  • 主要介绍了详解Intellij IDEA 2017 debug断点调试技巧(总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 本篇文章给大家总结了Visual Studio Code断点调试Vue的方法以及心得分享,需要的朋友参考学习下。
  • 微信小程序断点调试.

    2018-08-07 14:30:05
    微信小程序的断点调试,是相当重要的,因为微信的小程序的调试,本事不是太难。
  • unity3d程序断点调试的2种方法
  • js调式debug工具浏览器使用支持断点调试,结合webstorm一起试用,前端程序员的福音,目前最牛逼的工具,你没用过,说明你还不是大牛....
  • Unity3D断点Android真机调试。亲测可用。如有问题请加入QQ:94297366
  • 主要介绍了nodejs各种姿势断点调试的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • PhpStorm设置断点调试
  • Debug断点调试详解

    千次阅读 2021-04-11 09:06:37
    Debug断点调试功能 文章目录Debug断点调试功能一、断点简介二、Debug控制面板三、Debug按钮的使用1. 跳转到当前Debug所在行2. 步过3. 步入4. 强制步入5. 步出6. 回退断点7. 运行到光标处8. 计算表达式9. 其余按钮...

    Debug断点调试功能

    一、断点简介

    • 程序运行过程中执行到断点,程序就会暂停在断点的代码处,不会自动继续向下运行,可以根据程序员的指令分析之后的代码流程

    • 在代码行的最前面单击即可设置断点

      首先讲述行断点,所以此时的断点应该打在方法体内部的代码行上,而不是方法的声明处

      image-20210409161553096
    • 以Debug模式启动程序即可开启断点调试

      image-20210409161559552
    • 可以同时设置多个断点

    二、Debug控制面板

    • 以Debug模式启动程序之后自动弹出Debug控制面板:

      image-20210409161611783
    • 控制面板的基本介绍

      image-20210409161620307

    三、Debug按钮的使用

    对Debug按钮的整体介绍:(后面会逐一详解)

    按钮说明
    (Alt + F10):如果处于其他代码行或页面,点击这个按钮可回到此时Debug正在执行的代码行
    (F8):步过,代码逐行向下执行,如果这一行上有方法则自动执行方法不会进入方法内部
    image-20210409161745556(F7):步入,如果当前行有方法,可以进入方法内部;一般用于进入自定义方法内,不会进入官方类库的方法体
    (Alt + Shift + F7):强制步入,能进入任何方法体,包括自定义方法和类库方法
    (Shift + F8):步出,自动执行完此方法体内的剩余代码并从方法体内部退出到方法调用处的下一代码行,表示此方法已执行完
    (无快捷键) 回退断点,退出方法体至方法调用处,此方法不会执行完,可以再次进入此方法
    (Alt + F9):运行到光标处,无需打断点,将光标定在某一代码行,点击此按钮直接执行到此代码行
    (Alt + F8):计算表达式,可以解析指定的表达式(语句),并执行此表达式

    1. 跳转到当前Debug所在行

    • 对应的调试按钮(Alt + F10)

    • 作用

      • 如果处于其他代码行或页面,点击这个按钮可回到此时Debug正在执行的代码行
    • 使用步骤

      image-20210409161847620 image-20210409161901367 image-20210409161915983

    2. 步过

    • 步过调试按钮(F8)

    • 作用

      • 代码逐行向下执行,如果这一行上有方法则自动执行方法不会进入方法内部
    • 使用步骤

      image-20210409161941027
    • 注意:断点执行过程中所执行到的行(比如上图有蓝色条框的代码行),表示的是此代码行还没有被执行,由编程人员选择进入此方法还是步过此方法

    3. 步入

    • 步入调试按钮(F7)

    • 作用

      • 如果当前行有方法,可以进入方法内部;一般用于进入自定义方法内,不会进入官方类库的方法体
    • 使用步骤

      image-20210409161959870

    4. 强制步入

    • 强制步入调试按钮(Alt + Shift + F7)

    • 作用

      • 能进入任何方法体,包括自定义方法和类库方法
    • 使用步骤

      image-20210409162013281 image-20210409162025521

    5. 步出

    • 步出调试按钮(Shift + F8)

    • 作用

      • 自动执行完此方法体内的剩余代码并从方法体内部退出到方法调用处的下一代码行,表示此方法已执行完
    • 使用步骤

      image-20210409162106696 image-20210409161007053

    6. 回退断点

    • 回退断点调试按钮

    • 作用

      • 退出方法体至方法调用处,此方法不会执行完,可以再次进入此方法
      • 与步出的区别
        • 步出会执行完此方法然后退出,不可再次进入此方法(如果想再次进入方法必须重新Debug)
        • 回退不会执行完此方法,而是退回到方法的调用处,还可再次进入此方法
    • 使用步骤

      image-20210409162128912 image-20210409162138192

    7. 运行到光标处

    • 运行到光标处按钮 (F9)

    • 作用

      • 无需打断点,将光标定在某一代码行,点击此按钮直接执行到此代码行
    • 使用步骤

      image-20210409162223930 image-20210409162233779

    8. 计算表达式

    • 计算表达式按钮(Alt + F8)

    • 作用

      • 解析表达式,执行表达式的代码
        • 无需修改代码,可以临时修改参数的值
        • 获取指定表达式的值
    • 使用步骤

      image-20210409162253672

      如果想要测试董事长,则点击计算表达式按钮临时修改参数值:

      image-20210409161138215

      表达式修改为get方法,即可得到此对象的值

      计算表达式的功能并不单单限于以上两种方式,可以解析任何表达式,只要符合Java语法即可

    9. 其余按钮介绍

    9.1 重启这次Debug

    image-20210409162309523

    9.2 程序向下运行,直到下一个断点才停下来,如果没有断点,则整个程序会直接执行完毕

    image-20210409162322463

    9.3 进入断点的管理面板(View BreakPoints)

    image-20210409161315930

    启动Debug调试:

    image-20210409162457305

    9.4 临时禁用所有断点

    image-20210409162605569

    9.5 停止Debug过程

    image-20210409163106347

    注意:在方法内部停止了程序,此方法不会中断,只有执行完此方法程序才会停止(进入了方法中只有执行完方法才可以出去)

    四、Debug其他功能

    1. 查看某一变量的值

    image-20210409163133990

    输入所要查看的变量:

    image-20210409163148934

    变量的值将会显示在面板上:

    image-20210409163156604

    2. 条件断点

    • 条件断点简介

      • 当条件满足时此断点才会生效
    • 使用步骤

      image-20210409163227275

      让程序继续运行,直至条件满足才进入断点:

      image-20210409163235714

    3. 多线程调试

    • 概念

      • 断点右键

        image-20210409163247795
      • 如果为ALL的话,则所有线程都会显示在面板上,同时控制所有线程,不利于观察一个线程的执行过程

      • 如果为Thread的话,只会显示一个线程的断点调试过程

        • 所有的线程都会执行到断点处停止,只不过是只能控制其中一个线程,想要控制其他线程必须切换线程
    • 使用步骤

      image-20210409163316335

      在面板可以切换要显示的线程以及显示各线程的状态:

      image-20210409163338277

    4. 强制方法返回

    • 概念

      • 当方法执行到一半时(比如出现了异常),不想继续执行此方法(此方法中剩余的代码都不执行),直接退回至调用处的下一行
    • 使用步骤

      image-20210409163959362

    五、断点分类

    1. 行断点

    • 上述讲述的就是行断点,断点打在方法体内,而不是方法的声明处

    2. 详细断点(源断点)

    • 使用 shift + 鼠标左键,断点打在方法体内,而不是方法的声明处

      image-20210409164444655

    3. 方法断点

    3.1 作用一

    • 会自动的在进入方法或者离开方法时设置断点(不可见的两个断点),可以直接从方法的第一行执行到方法的最后一行,方便观察方法体内的参数、变量的初始值和最终值,而不关心变化过程

    • 在方法的声明处打断点

      image-20210409164255167
    • 进入Breakpoints中,设置断点在进入方法时还是离开方法时

      image-20210409202213960

    3.2 作用二

    • 自动的跳转到方法的实现类

      • 为接口中的方法添加方法断点

        image-20210409164534848
      • 没有在实现类中添加任何断点

        image-20210409164552718
      • 方法的调用处也没有添加任何断点

        image-20210409164759958
      • 以Debug方式启动程序

        image-20210409164713713
      • 使用场景:接口的实现类有很多个,不知道是执行哪一个实现类的方法时,可以在接口的方法打一个方法断点,会自动的跳转到对应的实现类的方法

    4. 异常断点

    • 无需显示设置异常断点的位置,程序会自动的在产生指定异常的位置停止下来

    • 使用步骤

      • 首先进入断点的管理面板(BreakPoints),添加异常断点

        image-20210409165046836 image-20210409165107786 image-20210409165133780
      • 以Debug方式启动程序,会自动的在产生异常的位置停顿

        image-20210409164918575

    5. 字段断点

    • 监控某一字段(属性)在整个程序中执行的流程

      • 会自动的在此属性值被读取或者被修改的位置停顿下来,每有一次读取或值变化就会停顿一次
    • 在字段所在的代码行添加字段断点

      image-20210409165228068
    • 进入Breakpoints中,设置程序停顿的条件

      image-20210409201638723
    • 以Debug方式启动程序

      image-20210409165350901 image-20210409165450498

    六、JDK1.8 Stream调试

    image-20210409165554521 image-20210409165645915
    展开全文
  • PhpStorm 2017 断点调试

    2017-04-26 17:06:29
    PhpStorm 2017 设置断点调试
  • VisualStudio 断点调试详解

    千次阅读 2019-10-31 08:56:52
    本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时

    本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时

    本文将会按照从简单到复杂,从常用的到不常用的方式,告诉大家断点调试方法

    在代码行添加断点

    将光标定位到某一行,在此行的左边,也就是下图显示红色断点的地方,进行点击,此时就可以在此行添加断点。或通过在此行按下 F9 键添加断点

    运行程序,当程序运行到此行的时候,将会进入断点,程序将会暂停进入调试

    从代码行添加断点是最常用的方法

    添加函数断点

    点击工具栏的 调试-窗口-断点 打开断点设置

    点击添加可以添加函数断点,函数断点需要添加限定符,完全的表达式如下

    命名空间..方法(参数)
    

    例如

    WegaljifoWhelbaichewair.Program.Main(string[])
    

    但是一般都可以简写,如不存在重载方法的时候,不需要添加参数,如上面代码可以去掉string[]在没有重载的主函数。如不存在多重命名冲突的时候,可以去掉命名空间

    从调用堆栈添加断点

    在 VisualStudio 暂停程序进入断点的时候,可以点击 调试-窗口-调用堆栈 打开调用堆栈窗口,在调用堆栈窗口可以点击某个方法右击添加断点

    在调用堆栈可以双击堆栈里面的方法进入此前的调用方法,在进入的时候可以看到进入这个方法的局部变量

    如上图是我的一个程序运行的调用堆栈,在堆栈的每一项就是一次方法调用,在对应的一项上面右击可以选择添加断点

    这里可以选择添加断点或追踪点,关于断点或追踪点的不同在哪将会在下文说到

    添加汇编断点

    在 VisualStudio 提供汇编的功能,可以将代码转汇编

    在调试汇编的时候也可以在汇编代码添加断点

    从 调试-窗口-反汇编 可以打开汇编窗口,在这个页面里面将光标定位到需要添加断点的行,按下快捷键 F9 就可以在这一行添加断点

    或者用鼠标在页面的左侧,也就是上一步添加断点时断点显示的行,点击一下就可以添加断点

    以上就是添加断点的各个方法

    从代码行断点转函数断点

    对于一个大的项目,想要添加函数断点还是比较难的,原因是写全命名空间是比较大的成本。如果此时可以拿到对应源代码,尝试在源代码上面添加断点,从断点窗口可以将代码行断点转函数断点

    在断点窗口点击 显示列 可以选择函数,此时就可以看到断点窗口显示多了一列是函数,这就是添加断点对应的函数,在这个函数里面会写全命名空间。如果在运行时,将会添加对应的程序文件

    鼠标选中对应的断点一行按下快捷键 ctrl+c 进行复制,在文本编辑器进行粘贴,可以看到如下代码

    名称;标签;条件;命中次数;函数
    KikuSimairme.cs,行 161 字符 9;;;总是中断(当前为 1);NawbemcemXadre.exe!NawbemcemXadre.KikuSimairme.CreateD2DRender()
    
    

    最函数对应的一列复制出来,这时这个内容就可以作为断点窗口的新建函数断点的函数表达

    关闭断点方法

    关闭断点的方法有两个,一个是禁用断点一个是删除断点

    选禁用断点,可以看到断点变白,删除断点将可以在断点窗口删除这个断点。通过禁用断点可以在下次需要断点时还可以快速开启,而删除断点之后不提供恢复方法

    禁用断点有两个方法,第一个方法是在对应的断点的代码行,将鼠标移动到断点上方,此时会显示如下图的两个按钮

    点击右边白色的圆的按钮就可以禁用断点

    在断点被禁用的时候,还是将鼠标移动到断点上,但是显示出来的右边的白色的圆的按钮就可以开启断点,这个按钮的功能是开启或禁用断点

    另一个禁用断点的方法是通过断点窗口选择对应的断点,右击禁用按钮就可以禁用断点,在断点被禁用的时候

    在断点窗口的禁用或打开断点的按钮的功能是如果用户有勾选某些断点,那么点击的时候对被勾选的断点生效,否则对当前显示的所有断点生效

    同样在断点窗口也可以进行删除断点,在禁用或开启断点的按钮旁边就是删除断点,这个按钮的功能和禁用断点按钮的功能一样,如果有用户勾选某些断点的时候就删除被勾选的断点,否则就删除当前显示的所有断点

    另外一个删除按钮是只删除当前选中项,对于被勾选的断点不会被删除,几个按钮的功能请看下图

    条件断点

    如果打上断点每次都进来,有时也会降低调试的速度,例如我在循环的开始打上断点,每次循环都进入断点,刚好这个循环需要循环 1000000000 次,假设一秒能调试一次,请问你调试完成这个循环需要多久

    为了让小伙伴可以快速进行调试,忽略自己不关注的断点,在 VisualStudio 提供了条件断点的功能,给断点进入添加条件

    给断点添加条件有两个方法,第一个方法和使用代码行添加断点的方法相同,将鼠标移动到断点上,此时可以看到显示了两个按钮,在上文说到禁用或启动断点的时候用到了右边的按钮,现在给断点添加条件需要用到第一个按钮

    这两个按钮的功能如下图

    另一个设置方法是在断点窗口里面右击对应的断点,点击设置就可以显示设置窗口

    请勾选条件选项,此时可以添加很多条件

    命中数

    点击条件下拉可以选命中数,可选的是当命中数是多少的时候,或大于多少等,表示在这个断点被经过了多少次的时候进入

    如我选择命中数等于 3 那么将会在代码经过这个断点这一行的第三次进入断点

    在断点的中途可以选择重置次数

    又如我在进入一个循环,我想在每 100 次的时候进入暂停让我看一下,我可以添加命中数选数倍于 100 就可以

    条件表达式

    在条件表达式是比较复杂的功能,可以将当前的局部变量和实例变量,静态变量添加表达式,可选当表达式的返回值是 true 或者当表达式发生修改时进入断点的方法

    在选择表达式为 true 时暂停可以在表达式输入布尔返回值的表达式

    在使用的表达式可以使用变量等的属性或字段,或直接使用变量进行判断

    例如我当前方法有一个局部变量 foo 和一个字段 _f1 我需要在这两个都不为空的时候进入断点,此时可以添加一下表达式

    添加表达式可以使用对象的私有字段

    多个表达式的与关系使用 && 符号,或关系使用 || 和普通表达式相同

    筛选器

    有时候在调试多线程的时候只是需要在某个线程才进入断点,此时可以选择筛选器输入对应的线程号,在筛选器可以选择机器名、进程的 ID 和进程名、线程号和线程名,可以判断当前是等于或不等于

    如我需要判断当前的线程是 2 的时候进入断点,我可以这样写

    ThreadId = 19768
    

    这里的等于号写 === 都可以,多个条件可以使用 & 与和 || 或连接

    可以选的判断有机器名、进程的 ID 和进程名、线程号和线程名

    • MachineName = “name”
    • ProcessId = value
    • ProcessName = “name”
    • ThreadId = value
    • ThreadName = “name”

    如果同时需要添加筛选器和条件表达式可以点击添加条件,多个条件是与关系,需要同时成立才能进入断点

    值修改断点

    在 VisualStudio 2019 支持对 dotnet core 3.0 的程序添加值更改断点,支持对某个属性或字段添加值更改断点,在这个属性或值修改就进入断点

    在局部变量和自动窗口等都可以右击某个属性设置值更改中断将会在这个值被修改的时候进入断点

    详细请看 VisualStudio 2019 新特性

    断点输出

    还记得在调用堆栈右击添加断点的时候可以选追踪点不,其实在断点添加输出就是追踪点的功能,有时候不能进入断点但是希望知道当前程序的运行,例如我在触摸的时候我就不能直接进断点,我需要在方法里面变量输出到控制台,此时就可以用到追踪点功能

    和上文的设置条件断点相同的方法进入断点设置,勾选操作,此时可以选择输出到控制台的内容,输出的格式是直接输入的文本将会直接输出,对于变量请使用{}包含

    如我需要输出 Foo 属性的值,那么可以添加下面代码

    我说的是{Foo}
    

    在断点输出和条件断点是没有冲突的可以设置符合某个条件的时候就执行输出

    在输出内容可以添加一些预设的值,例如当前的函数,将会输出 命名控件.类.函数 的格式,使用方法如下

    当前的方法是 $FUNCTION  在这个方法
    

    还可以使用的预设的值有很多

    • $ADDRESS 当前函数和地址,输出如 lindexi.Foo.F1() + 0x7d3abc380000025c 比较少使用
    • $CALLER 调用这个方法的方法名,输出如 lindexi.Foo.F2 当前我进入 F1 方法是在 F2 使用的
    • $CALLSTACK 将会显示调用堆栈,将会从程序的入口到当前方法的调用堆栈一个个显示
    • $FUNCTION 当前调用的方法,输出如 lindexi.Foo.F1() 这个方法会比输出当前函数和地址常用
    • $PID 当前进程号
    • $TID 当前线程号
    • $TNAME 当前线程名
    • $TICK 系统从开启到现在的毫秒数

    在使用输出的时候可以选择继续执行,此时断点不会停下而是会输出继续运行程序

    管理断点

    在断点窗口提供了断点管理的方法,我会在项目里面使用很多的断点但是我需要在调试不同的模块开启或禁用一些断点,此时就需要用到断点的管理功能

    在断点窗口提供搜寻的功能,如下图在搜寻输入框输入字符串按下回车将会在窗口显示满足条件的断点,注意此时不满足条件的断点不会失效,只是没有显示

    可以选择 在列中 的数据作为搜寻范围,如选择条件和函数,通过选择函数可以过滤某个命名空间

    经常使用的是右击断点添加标签,右击断点点击编辑标签就可以添加标签,可以给一个断点添加多个标签,此后选择 在列中 的标签作为范围,可以直接显示某个标签的断点

    此时点击开启或禁用断点按钮或删除断点按钮就可以对当前显示的断点进行全部开启或禁用等

    保存断点

    默认的断点数据保存在哪

    默认会保存在 .vs\**\.suo 文件里面,也就是断点是不随代码仓库提交的,但是我需要将我的断点发送到另一台设备使用?除了复制一个 .vs 文件夹之外,还可以导出断点到文件。在断点窗口提供导出和导入断点的功能,可以通过点击按钮导出当前满足搜寻条件的所有断点,即使你没有对他打钩,或右击某个断点点击导出

    导出的断点是 xml 格式,对于代码行断点用途不大,因为代码行都会不断修改,而对于函数断点倒是有一点用,这个功能用途不是很多,实际我会在代码里面通过 Debugger.Break 添加断点如果我觉得这个断点很多小伙伴都需要

    Use breakpoints in the debugger

    更多调试技巧请看 Visual Studio 调试技巧 - LightSmaile - 博客园

    我录了一个很无聊的课件视频,欢迎小伙伴点击下面课件

    更多请看 dotnet 代码调试方法 这是一篇我写了很久的博客,包含了很多有趣的调试方法

    我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

    如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • EmmyLua 断点调试、xlua断点调试

    千次阅读 2020-10-10 11:22:11
    0.设置工程目录 1.安装EmmyLua-AttachDebugger插件 ... 从本地硬盘安装插件方法 ...File/Setting/Plugins/点右上面的小齿轮/...2.创建调试配置 2.1打开运行配置页面 2.2新建EmmyLuaDebugger(NEW) 2.3配置 ...

    目录

     

    0.设置工程目录

    1.安装EmmyLua-AttachDebugger插件

    2.创建调试配置

    2.1打开运行配置页面

    2.2新建EmmyLua Debugger(NEW)

    2.3配置

    2.4粘贴到需要调试的lua脚本头部

    3.运行调试

    3.1添加到unity线程

    3.2打开unity,运行

    3.3返回IJ,Debug窗口,点击左上角一个小虫子图标


    0.设置工程目录

     

    1.安装EmmyLua-AttachDebugger插件

    链接: https://pan.baidu.com/s/1ipuWGyIG0HxnuXx3ttiofg 提取码: sbqm 

    从本地硬盘安装插件方法

    File/Setting/Plugins/ 点右上面的小齿轮/Install Plugin  from Disk...查找该插件的放置位置

    2.创建调试配置

    2.1打开运行配置页面

    2.2新建EmmyLua Debugger(NEW)

    2.3配置

    先选中1,再选中2

    复制3部分代码,Ctrl+A全选,复制

    2.4粘贴到需要调试的lua脚本头部

    3.运行调试

    3.1添加到unity线程

    Run/Attach to Process,打开进程列表窗口,选择unity进程

    3.2打开unity,运行

    3.3返回IJ,Debug窗口,点击左上角一个小虫子图标

    4.结束语

    如果不能正常调试,可以加强断点dbg.breakHere()

    相关文件下载

    链接: https://pan.baidu.com/s/1ipuWGyIG0HxnuXx3ttiofg 提取码: sbqm 

     

    展开全文
  • JS调试技巧技巧 一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 右侧的Breakpoints会汇总你在JS文件所有打过的断点,点击跟checkbox同一行的会暂时取消这个断点,若是点击checkbox下一行的会直接跳转到该...
  • php代码在调试时,经常是print_r或者var_dump来断点,但是当项目较为复杂的情况下,这么做效率就非常低下了,断点调试就非常好的解决了这个问题,这篇文章主要介绍了PhpStorm本地断点调试的方法步骤,感兴趣的小伙伴...
  • Intellij IDEA 2017 debug断点调试技巧与总结详解篇

    万次阅读 多人点赞 2017-03-20 13:15:33
    在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。 下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的,有的人keymap是mac版...

    IntelliJ IDEA使用教程 (总目录篇)

    在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。
    下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的有的人keymap是mac版的,有的是Windows版的
    我的就是Windows,而且修改keymap为eclipse的keymap,因为我算是eclipse转过来的吧。
    下面直接看图,详细解释,每一个按钮(按钮对应图中的数字)都是什么功能。

    1,rerun XXX,这个就是直接重新跑某个程序。
    2,这个相当于eclipse里面的f8,直接跑完,到下一个断点停下,没有就直接跑完程序。
    3,停止项目或者程序。要是自己的main呢,点一下就停下了,要是Java web项目,则点2下,就把服务器给停了。
    4,查看所有的断点设置情况。具体详情,下面有示意图,再细细解释。
    5,直接取消所有断点,让所有断点无效。
    6,要是你一不小心把这个下面的布局给弄乱了,你点这个,就把下面的布局给还原咯。
    7,跳转到当前代码所执行的地方,也就是说你在看代码的时候,点到其他地方,一点这个按钮,就到了程序执行到当前哪行的代码的地方。
    8,下一步,如果是方法,他是不会跳进去的。就是一行行的往下走。(eclipse里面的快捷键就是f6)
    9,跳转到详情,如果下一行调试代码是可执行方法,就可以f5进去,查看这个方法的运行详细情况。重点就是点进去执行
    10,从详情跳出去,和上面的9相反。
    11,看字面意思就是跳转到那个光标所在的地方,前提是他能路上没断点拦着(这个也很好用的,下面详细解释一下他的好处)。
    12,这个点开之后,可以计算你想要看的代码段的值,后面详细上图。
    13,看意思,同eclipse里面的watch,查看某个对象的值,自定义的对象。
    14,把自定义的查看对象的值,分开到另一个tab页。
    15,有时候当我们步入方法体之后,还想回退到方法体外,点这个按钮后,断点重新回到方法体之外。在继续还是可以再次进到方法内这个很好的,假设你手快,跳过想断点的方法,然后这个drop frame,出去之后,就可以再次debug啦。这个很是着重介绍一下,就算你只打一个断点,一不小心跑了,不怕,点这个,推出,然后再执行,还是会再次进入断点的。这个很管用的,要是不知道的话,就的再从头到尾的执行一遍,很是麻烦哦。所以,再使劲的强调一下这个高科技按钮

     

    查看断点处的某个对象的值,可以 如下几个方法:
    1,选中对象后,鼠标悬停在对象上 2 秒左右
    2,在watch里面添加这个对象,
    3,下面也许会自动列出来你代码里面有的
    4,使用上面图上标注的12的那个按钮

    5,alter + click,按住alter,然后点击想看的变量,就出现啦变量的值,这个厉害,感谢 40 楼老铁的评论。

     

    下面就再详细说下 4,12,13,14,11
    4,查看所有的断点的详情,点开如下所示。
    在图中condition中可以设置断点的条件,当i==4的时候,才停下。查看具体断点内容。


    关于设置断点条件,还可以,直接在代码断点处,右键设置,完啦之后,done,设置完成。


    12,这个用的也比较多,这个就比较随意。可以根据你的输入,计算你要的结果,不局限代码里面的变量啥的。
    这个在debug的时候,使用起来是很方便的。


    13,14,这2个点完之后,效果如下图,只是把自定义的变量和代码里面自带的变量分在两个tab页面展示。
    你可以点13号按钮,自行添加,你想查看的变量的值。

    11,看字面意思就是跳转到那个光标所在的地方,前提是他能路上没断点拦着

    大师兄

    一般看到这个图,大概都是在for循环之前打了个断点,当你在一步步的跟踪代码执行的时候,遇到这个for循环,要是还是一步步的继续,那就得点很多下,要是循环集合很大,岂不是很费时,一般估计就会在for循环的后面(比如在我这个图的39行打个断点,来一下子跳过for循环)再打个断点,那么你为了一步步的跟踪代码执行,不得不继续类似的操作,添加了不少没用的断点。你这么做是因为你不知道这run to cursor ,就是直接执行到鼠标光标处。通俗的解释一下,看我图39行,当前鼠标的光标就在这地方,你直接点这个run to cursor 这个debug功能按钮,就会直接跳过for循环,运行到光标所在的位置,停下。这就省去了打n多个不需要的断点啦。这个按钮的功能不错吧。

     

    还有个需求,就是

    在调试代码的时候,实时的修改,运行状态的代码变量的值

    仔细看下图,就知道,怎么在实时调试代码的时候,怎么设置某些变量的值,可以看到,我上面在输入a之后,下面就有类似你写代码时候的提示,你就可以在这地方修改变量的值啦

    (更新)

    上面的描述好像有问题,不应该使用watch去修改变量的值,具体看图吧。

    大师兄

    可以看到,我在watch里面写了行代码,给这个list add一个“123456”,然后发现,代码走一行,他就add一次,然后就发现我上面写的不对啦,不是这么来修改正在运行的变量的值的。

    大师兄

    应该像这张图这么来修改变量的值,这个是一次性操作的。

    大师兄

    这个地方,快捷键是f2,具体的快捷键可能不一样,f2快捷键之后,就会出格框,里面输入你想修改的值,就可以运行的时候,修改变量的值。这个还有你修改的记录。

    关于调试的时候,

    设置运行时的参数如下:

    入口如下,2个地方都可以。

    一般都是跑简单的main方法,跑main方法的时候,还带参数文件的,还是第一次,顺带做个记录吧。

     

    最后,湿胸我说的这么详细,各位观众,有钱的捧个钱场,没钱的捧个人场。点个赞,留个言啥的,好不好呀。

    我写完文章,给自己点个赞,不过分吧,
    不过分,那我可就点啦啊。
    我先点为敬,你们随意。大家随意。不要客气。。。

     

    更新:这个编辑器为了方便从eclipse编辑器转过来的同学们,他可以设置keymap的。具体看图。

    因为我就是刚刚开始的时候,使用的就是eclipse,后来转过来的,所以,在使用的时候,就先设置了一下,这个键盘映射。使用的还是以前在eclipse上使用的快捷键。不需要再次去记一遍新的快捷键映射。这个也是极其方便的。

    所以,在这个debug的快捷键上和使用eclipse时候,是一样的f5进去,f6是下一步。

    有时候发现,你打了断点,但是,代码却么有停下来,注意下图

    可以看到,打断点时候,有的是对号,有的是个x,x是不可执行的代码,所以,你要是在代码类似的地方打断点的话,代码就不会停下来,因为这个断点位置有点尴尬。

    老铁,要感谢下大师兄不?里边请,聊一聊人生。

    展开全文
  • 断点调试技巧

    千次阅读 2019-12-15 21:28:48
    作为一名小白,相信很多人对于正确使用断点调试很不是很会使用,下面就我的一些经验与大家分享 release模式下也可以使用断点调试,但需要经过简单的设置,今天我就来谈一谈使用debug模式下的断点调试 有时候代码写好...
  • 2,调试 断点点击那个绿色的甲虫图标(似乎甲虫已经成为debug专用图标了),进行断点调试。 点击后,会运行到第一个断点。会显示该断点之前的变量信息。 点击Step Over 或者按F8,我们继续往下运行,到下一个断点...
  • QT断点调试

    千次阅读 2019-07-08 16:04:40
    QT设置断点调试: 1、知道哪里可能出问题 2、完全不清楚自己程序bug在哪 3、跳过肯定不会出错的地方 前言: 这个东西难道大家不都应该会吗??? 本人用Qt Creator编写Qt的,~ 当然是有大佬用记事本写Qt的hhhh ,...
  • 本篇文章给大家介绍javascript调试技巧之断点调试,主要介绍使用Firebug、debugger、debugger在程序中加入断点调试等,但是这些调试技巧都不借助于浏览器之外的工具,其他浏览器主要是opera、safari、chrome和ie8,...
  • 配置VS Code 使其支持vue项目断点调试

    千次阅读 2020-11-02 22:29:03
    ...在平常开发过程中我们可能会借助 console.log 来排查,但是现在我们可以借助 VS Code 断点调试项目。 前置条件 浏览器:Chrome 编辑器:VS Code vscode扩展插件:Debugger for Chrome 项.
  • Chrome断点调试

    千次阅读 2018-04-05 14:14:08
    1.断点调试是啥?难不难?断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了。操作起来似乎很简单,其实很多人纠结的是,是在哪里打断点?(我们先...
  • 2019-11-29-VisualStudio-断点调试详解

    千次阅读 2019-11-29 16:00:52
    title author date CreateTime categories VisualStudio 断点调试详解 lindexi 2019-11-29 08:41:17 +0800 2019-06-21 16:16:57 +0800 VisualStudio 本文详细告诉大...
  • 进入到相应的网页界面,然后查看Sources->Page->top->webpack://->找到react的js代码处,设置断点,进行调试
  • Unity 用VS断点调试卡死

    千次阅读 2021-01-07 17:43:14
    在Unity中,用VS进行断点调试时,老是卡住,编辑器无响应,要很久很久才能动,很是影响效率,在网上找到几种解决办法,貌似有点效果。 1、网上有说是VS占用CPU太高导致的,在VS的安装目录下,找到serviceshub....
  • C语言:使用Dev C++断点调试

    千次阅读 多人点赞 2020-10-17 11:10:10
    (这里使用的是Dev C++5.11版本) 一、调试前进行相关的设置 1、断点颜色 ①默认的断点颜色是黑色(如下图),发现黑色不利于查看代码,于是修改为红色 ...二、断点调试 1、设置断点 点击左侧勾选设置断点
  • chrome浏览器js断点调试总结

    千次阅读 2018-08-01 16:39:40
    1.断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了。操作起来似乎很简单,其实很多人纠结的是,是在哪里打断点?(我们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,934
精华内容 74,373
关键字:

断点调试