IDEA断点调试技巧,多张动图包教包会。

article/2025/10/1 23:24:46

文章目录

  • 一. 怎么开启断点调试?
  • 二. 调试界面咋那么多按钮?
    • 1.返回断点位置
    • 2.步过
    • 3.步入
    • 4,5.强制步入,步出
    • 6.回退断点
    • 7.断点跳到光标处
    • 8.表达式计算
    • 9.恢复程序
    • 10.停止程序
    • 11.查看所有断点
    • 12.禁用断点
    • 13.其他
  • 三. 竟然有那么多调试断点?
    • 1.方法断点
    • 2.属性断点
    • 3.异常断点
    • 4.终止断点
    • 5.条件断点
    • 6.流断点
    • 7.多线程断点
    • 8.远程断点

一. 怎么开启断点调试?

随着开发的深入,越来越觉得高效的调试方法是多么的重要了,但我们一般上来就是敲一些代码,谁会去静下心来学一些看似没什么用的调试技巧呢?但这恰恰就是新手和老手之间的区别。

断点调试是很简单的,只需要点击idea上方的小虫子,启动调试即可,如下所示。
在这里插入图片描述
这当然不是本文的重点,只是开个头。

二. 调试界面咋那么多按钮?

先来介绍一下界面。在这里插入图片描述
我给这些区域都标了 号,下面来重点介绍。

1.返回断点位置

1号按钮,这个用的不多,如果你从其他地方想要回到断点位置,就按一下即可,如下GIF所示。
在这里插入图片描述

2.步过

2号按钮,说人话就是一行行的往下执行,不会进入方法里面,如下所示。

在这里插入图片描述

3.步入

3号按钮,可以进入我们自定义的方法,如果是其他类库的方法不会进入,如下所示。
在这里插入图片描述

4,5.强制步入,步出

4号5号按钮,前者可以进入深层的方法,包括官方的源码,后者就是从对应的方法中出来,演示如下。

在这里插入图片描述

6.回退断点

6号按钮是很特殊的,如果你的代码中没有调用其他地方的方法,那么是呈灰色的,无法使用,只有进入更深层的方法,才能够使用,其实就是后悔药,我们很多时候调试时不小心按的快了点,很容易错过想看的位置,只能再次重启吗?不,使用这个drop frame 就可以了,演示如下。

可以看到,这里往下执行了add,但是还没有执行完,按这个按钮,再次回到了调用方法之前,但对于数据库插入等操作,其实是无法回退的,这里的回退只是因为记录了栈信息才能够做到的。
在这里插入图片描述

但是要注意,如果你某个方法调用完毕了,你想再回去那就没有办法了。

7.断点跳到光标处

7号按钮也用的不多,主要是为了快速跳转到光标指向的那一行,如下所示。
在这里插入图片描述

8.表达式计算

8号按钮是计算表达式的,我们模拟从数据库获取集合,用表达式查询对应的元素,如下所示。
在这里插入图片描述

9.恢复程序

9号按钮称为 Resume Program,能够跳转到指定的断点处,我们在10行和第100行各加一个断点,需要点几下该按钮跳转到100行呢?答案是一次即可,第一次断点会在第10行停下,点击改按钮直接飞越90行到第100行,如下所示。

在这里插入图片描述

10.停止程序

10号按钮就是停止调试,但是注意,即便停止了调试,程序也会继续运行下去,如何想让他就在断点处停止呢?后面我会说到。

11.查看所有断点

11号按钮打开又别有乾坤,基本功能如下图所示,主要是设置,查看断点信息,大家看着应吧,实用的方法我会在下面讲的。
在这里插入图片描述

12.禁用断点

12号按钮就简单了,暂时禁用掉断点,方便程序继续执行,一般配合 Resume Program

13.其他

13号其实不是按钮,而是一块区域,这里面存放了很多变量的信息,方便我们查看。

14号按钮其实之前被我忽略掉了,这次拿出来讲一下,在watch可以监控变量的变化,有同学说,中间的变量栏也可以看啊,但是单独拉出来,看起来更加的方便,演示如下。
在这里插入图片描述

三. 竟然有那么多调试断点?

这里省略了普通的行断点调试,毕竟是最简单的,大家都会。

1.方法断点

方法断点是不是用在普通方法上的,最好的用法是在接口上使用,当我们在调试源码的时候,如果在接口上打了断点,再往下走,可以直接跳转到实现类的实现方法上,而不需要我们一个个的去找。

案例中,有一个接口DemoInterface,它有两个实现类,让我们看下效果吧,演示如下。

注意,方法断点是一个菱形标志。在这里插入图片描述

在这里插入图片描述
其实可以直接在接口方法上打断点,直接跳转到对应的实现方法的,这里是为了放慢演示速度。

2.属性断点

属性断点是打在属性上的,我们无需再getter setter方法上打断点,在属性上打上断点,就会出现一个小眼睛的标志,如下所示。
在这里插入图片描述
在眼睛上点击右键可以设置。
我们一般是通过getter,setter方法设值的,所以就会在这两个方法上停留。

在这里插入图片描述
看一下GIF演示吧。

在这里插入图片描述

3.异常断点

在线上由于空指针出现了BUG,我们想快速定位到哪里出现了空指针,应该怎么做呢,答案就是,异常断点!演示如下。

注意,异常断点是一个闪电的标志。 在这里插入图片描述
在这里插入图片描述
可以看到,我们在全局打了个空指针断点,只要哪里出现了空指针,就会在那里停止,太方便了!

4.终止断点

前面我们说过,即便停止程序,也不会让我们后面运行的代码取消执行,那么我一定要取消执行可以吗?当然是可以的,演示如,在方法栈上点击右键,有一个Force Return,然后再点击Resumer Program,就可以直接终止返回了。
在这里插入图片描述

5.条件断点

我想要在某个条件满足的时候打上断点,而不想一步步的走下去,有什么办法吗? 当然有,在断点处右击,在condition里填入相应的条件即可,演示如下。
在这里插入图片描述

6.流断点

我们使用流的时候,很难看到中间做了什么,但其实idea就帮我们解决了,我用断点调试下面代码,给大家演示下。

其实只需要找到这个按钮就行了
在这里插入图片描述

 List<Integer> list = new ArrayList<>(Arrays.asList(1, 3, 3, 4, 4, 4, 5, 6, 78));List<Integer> collect = list.stream()//先将偶数筛选,再去重,返回集合.filter(s -> s % 2 == 0).distinct().collect(Collectors.toList());

在这里插入图片描述

7.多线程断点

给大家演示两种情况,多线程下调试,定时任务下调试。

这个演示比较简单,可能有同学不以为意,你可以去尝试下,如果使用默认All来调试多线程程序会发生什么,可能某条线程就跑掉了,没有停留,而这种方式可以捕获到运行的所有线程。

在这里插入图片描述

定时任务这样调试有个好处,即便我们在调试的过程中下一个任务也到时间了,也不会执行,防止多次定时任务执行带来的干扰,我在演示前已经提前一分钟启动了程序,每隔10秒钟打印一次,但是由于暂停了线程的执行,多次点击Resumer Program,发现并没有往下执行哦,而是再等了10秒钟之后执行。

在这里插入图片描述

8.远程断点

这个忽略啦,因为确实没有远程打过断点,有时间再补充吧,个人感觉可有可无。

其实我们每个人的生活都是一个世界,即使最平凡的人也要为他生活的那个世界而奋斗。


http://chatgpt.dhexx.cn/article/q2SdlSvj.shtml

相关文章

OD跳过验证

1.一个简单的登录程序&#xff0c;将程序仍入OD 2.有中文搜索字符串 3.查看登录成功和失败地址&#xff08;密码已经出来了&#xff09; 4. 5。将这里的CALL改成JMP跳到登录成功的PUSH推入第一个参数的地址 6.点击登录程序已经破解密码出现 7.解码得到密码

od反汇编linux,新手学习反汇编之OD寻找功能call

背景知识 VC编程知识 OD工具使用 汇编知识 功能实现 简单的互换点击功能&#xff1b; 将两个功能互换 效果图: 创建test程序 使用VS2017创建一个新的MFC工程命名为test&#xff0c;去掉默认按钮&#xff0c;新加两个button&#xff0c;分别命名test,test2。 创建添加两个新方法…

OD 手动脱壳 - UPX

OD 手动脱壳 - UPX 1. 准备工作 1.OD 吾爱破解版 链接&#xff1a;https://pan.baidu.com/s/1ErDTW3D1n_XTAfTh8uMEbQ 提取码&#xff1a;tr452. 待脱壳程序 test2.exe链接&#xff1a;https://pan.baidu.com/s/1GUseFGIB8jnrhGE_0bSZoA 提取码&#xff1a;xki4 3. 查壳工具…

Windows逆向分析实战:使用CE+OD获取用户信息

序&#xff1a; 很多想学软件逆向分析的朋友们&#xff0c;初学者往往看到一大堆的技术资料&#xff0c;直接就懵了。本文以一个简单的例子&#xff0c;演示一下使用CEOD进行内存的获取&#xff0c;然后使用Qt进行界面显示&#xff0c;让初学者简单了解逆向分析的流程&#xf…

OD教程(去除NAG窗口--PE文件结构)

nag本意是烦人的意思&#xff0c;nag窗口是软件设计者用来时不时提醒用户购买正版的警告窗口。 软件设计者可能认为当用户忍受不了试用版中的这些烦人的窗口时&#xff0c;就会考虑购买正式版本。 PE文件结构 为什么需要了解PE文件结构&#xff1f; 大家想象一下&#xff0…

OD使用说明

目录 功能下载使用界面说明工具栏介绍快捷键 功能 ollydbg是一种动态反汇编工具&#xff0c;可以对运行的代码进行调试 下载 我下载了吾爱破解专版&#xff0c;因为它集成了多种插件 使用 软件运行以后就是下面的界面 界面说明 工具栏介绍 加载上一次的调试程序 关闭调…

小甲鱼OD使用教程七----破解VisualSite Designer

学习了小甲鱼OD使用教程之后的记录&#xff0c;仅供学习参考使用 一&#xff0c;程序分析 打开 关闭 这个程序无壳&#xff0c;需要破解的有两个点&#xff1a;1.使用次数限制 2.广告 第一点甲鱼叔在视频中介绍了两种方法&#xff0c;在次数耗尽之前和之后 1.次数耗尽之前 …

OD插件编写

前言 本教程主旨用于编写一个OD插件修复部分问题或者解析反调试问题. 官方文档 异常过滤器的反调试插件 当触发异常时首先会将异常交付给SEH然后再交付到 SetUnhandledExceptionFilter&#xff0c;不管是哪个阶段当存在调试器时&#xff0c;首先会交付给调试器&#xff0c;…

OD实战(1)

软件暴力破解 软件破解 软件 TraceMe下载地址&#xff1a;https://pan.baidu.com/s/1bWWm3L6cZ0gOqFIsKXQqkw 提取码&#xff1a;uqcd 破解 软件运行以后需要输入用户名和序列号&#xff0c;通过文本比较&#xff0c;只有正确的账号信息才能够进入&#xff0c;我们所要作的就…

Od软件破解

【文章标题】&#xff1a;算法分析与注册机编写 【文章作者】&#xff1a;hahaya 【软件名称】&#xff1a;Free Internet Window Washer 【软件大小】&#xff1a;1177KB 【保护方式】&#xff1a;注册码 【软件介绍】&#xff1a;无 【下载地址】&#xff1a;http://download…

简单详细的OD破解教程

2007-08-04 15:46作者&#xff1a;CCDebuger注&#xff1a;昨天在网上见到了这篇文章&#xff0c;但缺少插图&#xff0c;从另外一篇文章中也看到了类似的的教程文章&#xff0c;里面的插图质量实在不敢恭维。在一个论坛中正好下载了文章中所介绍的破解软件CRACKME3&#xff0c…

通过一个例子来介绍OD的简单使用

OllyDbg是一个32位的动态调试器&#xff0c;在平常做逆向的题中用的比较多&#xff0c;下面用bugku一个简单的例子Eazy-Re来介绍一下OllyDbg的使用。 首先打开程序&#xff0c;看一下是干什么的&#xff0c;他提示你输入flag&#xff0c;这里我随便输入几个字母&#xff0c;提…

OD基本介绍及快捷键讲解

OD简介 Ollydbg&#xff08;简称OD&#xff09;是Windows平台下Ring3级的程序调试利器。程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前&#xff0c;用手工或编译程序等方法对程序源代码进行测试&#xff0c;来查找和修正程序中的语法错误和…

OD修改软件

一、打开软件&#xff0c;查看正常运行的程序 二、打开OD&#xff0c;拖入要调试的程序 三、分析汇编代码 title是"Hello world"&#xff0c;内存地址是0x00403000 四、数据窗口跳转到该地址&#xff0c;快捷键ctrlG 五、修改数据 点击要修改的地方&#xff0c;按…

简单详细的OD破解教程(转)

简单详细的OD破解教程 2007-08-04 15:46作者&#xff1a;CCDebuger注&#xff1a;昨天在网上见到了这篇文章&#xff0c;但缺少插图&#xff0c;从另外一篇文章中也看到了类似的的教程文章&#xff0c;里面的插图质量实在不敢恭维。在一个论坛中正好下载了文章中所介绍的破解软…

OD教程(汇编基础)

一、call有以下几种方式&#xff1a; call 404000h ;直接跳到函数或过程的地址 call eax ;函数或过程地址存放在eax call dword ptr [eax] call dword prt[eax ] call dword ptr [eax5] call dword prt[eax5] calldword ptr [<&API>] ;执行一个系统API 二、关于…

小甲鱼解密系列调试篇——OD使用教程笔记(持续更新中)

目录 一点铺垫&#xff1a;基础知识 1.汇编语言 2.NAG窗口 3.SEH 4.断点类型 一、MessageBox.exe修改程序标题内容——修改函数传入值 二、TraceMe.exe暴力破解程序登陆界面——搜索函数、寻找附近调用取值的地方 三、reverseMe.exe暴力破解/打补丁实现注册——分析文件…

第52篇:OD使用教程2-设置API函数断点去除软件对话框及过期校验

Part1 前言 大家好&#xff0c;我是ABC_123。之前分享过一篇Ollydbg逆向分析入门教程《第50篇&#xff1a;使用OD逆向破解流光Fluxay扫描器各种限制》&#xff0c;这篇文章主要讲解了在使用OD逆向分析时&#xff0c;如何按照编程人员的思维去解除软件的各种限制。方法有点麻烦…

od的简单使用--(1)

od的简单使用——&#xff08;1&#xff09; 一&#xff0c;本教程需要的工具OllyDBG 下载&#xff1a; OllyDBG 中各个窗口的功能如上图。简单解释一下各个窗口的功能&#xff0c;更详细的内容可以参考 TT 小组翻译的中文帮助&#xff1a;反汇编窗口&#xff1a;显示被调试程…

PyCharm 社区版(Community)能不能商用?

其实官方博客已经给出了答案&#xff0c;截图如下&#xff1a; PyCharm社区版是专业版的阉割版&#xff0c;PYcharm专业版增加了Web开发、Python We框架、Python分析器、远程开发、支持数据库与SQL等更多高级功能。两者区分如下&#xff1a; 所以&#xff0c;大胆放心的用PyC…