Idea断点调试(debug)详解

article/2025/10/1 23:21:57

目录

  • 1.打断点,并启动
  • 2.按钮介绍
    • 1.测试程序
    • 2.Step Over
    • 3.Step Into
    • 4.Force Step Into
    • 5.Step Out
    • 6.Drop Frame
    • 7.Run to Cursor
    • 8.Evaluate Expression
    • 9.Resume Program
    • 10.Stop
    • 11.View BreakPoints
    • 12.Mute BreakPoints
  • 3.断点分类
    • 1.方法断点
    • 2.属性断点
    • 3.异常断点
    • 4.条件断点
    • 5.流断点
    • 6.多线程断点

1.打断点,并启动

打断点:

鼠标左键点击这里就会出现一个红点标志 (有各种形状,后续解释),就打上了一个断点。

启动:

  • 对于已经运行过的程序,直接点击,小虫子就能启动
  • 对于没有运行过的程序,找到程序入口(main方法)前面的三角形 ,鼠标右键启动

启动后,当我们的程序执行到断点程序处,就会出现调试界面,如下:

如果没有出现调试界面,那就是说明:根本没有执行断点处的程序。

2.按钮介绍

1.测试程序

先写一个简单的类来做测试,如下:

public class TestDemo {public static int add(int a, String b) {int c = Integer.parseInt(b);return a + c;}public static char sub(int d, int e) {char res = (char) Math.abs(d - e);return res;}public static void main(String[] args) {String b = "45";int a = 13;int sum = add(a, b);int d = 17;int e = 89;char f = sub(17, 89);}
}

接着,找个地方打上断点(确保程序会执行的地方)打上断点:

然后开始debug。

2.Step Over

步过:

作用:

  • 一行代码一行代码地往下执行
  • 不会进入到路经的方法里面

3.Step Into

步入:

作用:

  • 进入我们自定义的方法
  • 不会进入其他类库的方法

4.Force Step Into

强制步入:

作用:

  • 可以进入更深层次的方法
  • 自定义类库或者其他类库的方法都能进入

5.Step Out

步出:

作用:

  • 从对应的方法中出来,返回上一层

6.Drop Frame

回退断点:

作用:

  • 当进入到更深层的方法后才能使用
  • 当我们错过了debug的位置时使用
  • 这个按钮可以让焦点回到调用方法之前,然后再次debug一次方法(给你犯错重来的机会)
  • 对于数据库增删改操作无法回退

注意: 此回退仅限于,那个方法还没有调用完,否则是无法回去的再次debug那个方法的,只能重新启动debug。

7.Run to Cursor

跳到光标处

作用:

  • 将debug执行位置跳转到光标位置,然后继续debug
  • 只能往后面跳,如果光标在debug执行位置前面,就会终止debug

8.Evaluate Expression

表达式计算:

作用:

  • 获取已经debug过的参数的值
  • 计算已经debug过的参数的值(表达式、方法)

9.Resume Program

恢复程序:

作用:

  • 当有多个断点时使用
  • 直接跳转到下一个断点的位置

10.Stop

停止程序:

作用:

  • 停止debug
  • 会继续跑完程序

11.View BreakPoints

查看断点:

作用:

  • 查看所有断点,并进行相关设置

12.Mute BreakPoints

禁用断点:

作用:

  • 暂时禁用掉所有断点,放行程序

3.断点分类

1.方法断点

给方法打上断点之后,当我们的debug到调用该方法的位置的时候,会直接跳转到方法处(直接Step Out就会跳转)。

2.属性断点

断点右键可以进行设置:

3.异常断点

添加异常断点流程:

作用:

  • 在全局打上异常(上述添加的是堆栈溢出异常)
  • 只要哪里出现了堆栈溢出异常,程序就会跳转到那个地方,方便快速找到异常位置
  • 可在run程序抛出异常后,根据异常去打断点,然后进行调试

4.条件断点

右键断点,设置条件,只有当满足条件时,才会进入该断点程序停留,否则就直接往下面执行程序。

5.流断点

调试流程:

  • 代码:

        public static void main(String[] args) {Stream.of(10, 30, 50, 90, 40).mapToLong(e -> e*e ).filter(e -> e > 2500).forEach(System.out::println);}
    
  • 断点调试:

作用:

  • 可以查看流的工作流程

6.多线程断点

调试流程:

  • 代码:

        public static void main(String[] args) {new Thread(() -> {System.out.println();System.out.println("thread1 is running");StringBuilder sb = new StringBuilder(".");for (int i = 0; i < 10; i++) {try {Thread.sleep(100);System.out.print(sb.append(".").toString());} catch (InterruptedException e) {e.printStackTrace();}}}, "thread1").start();new Thread(() -> {System.out.println();System.out.println("thread22 is running");StringBuilder sb = new StringBuilder(".");for (int i = 0; i < 10; i++) {try {Thread.sleep(100);System.out.print(sb.append(".").toString());} catch (InterruptedException e) {e.printStackTrace();}}}, "thread22").start();new Thread(() -> {System.out.println();System.out.println("thread333 is running");StringBuilder sb = new StringBuilder(".");for (int i = 0; i < 10; i++) {try {Thread.sleep(100);System.out.print(sb.append(".").toString());} catch (InterruptedException e) {e.printStackTrace();}}}, "thread333").start();}
    
  • 断点:

  • 查看输出:

作用:

  • suspend 设置为 Thread
  • 这样就可以单个线程单个线程地调试,而不会出现,线程之间争抢资源的情况(线程不断切换)

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

相关文章

大数据必学Java基础(三十二):IDEA中的断点调试

文章目录 IDEA中的断点调试 一、常用断点调试快捷键 二、条件判断,查看表达式的值 IDEA中的断点调试

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

文章目录 一. 怎么开启断点调试&#xff1f;二. 调试界面咋那么多按钮&#xff1f;1.返回断点位置2.步过3.步入4,5.强制步入&#xff0c;步出6.回退断点7.断点跳到光标处8.表达式计算9.恢复程序10.停止程序11.查看所有断点12.禁用断点13.其他 三. 竟然有那么多调试断点&#xf…

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;如何按照编程人员的思维去解除软件的各种限制。方法有点麻烦…