java 调试

MyEclipse 如何使用断点调试 文章目录1、在需要的代码行处打断点右键添加断点双击添加断点快捷键添加断点2、以debug模式开启服务器通过debug执行列表,选择服务器启动当前程序按右键,选择debug as,再选择服务器启动开发视图底部server列表选择服务器开启debug视图,打开server列表,选择服务器开启3、debug视图详解 1、在需要的代码行处打断点 有三种方式添加断点: 右键添加断点 把鼠标移到需要的代码行左... 阅读详情
 

java Debug-2

  64人阅读  评论(0)  收藏  举报

目录(?)[+]


 

1、 条件断点

断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。

条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。

在断点处点击鼠标右键,选择最后一个"Breakpoint Properties"

断点的属性界面及各个选项的意思如下图,

2、 变量断点

断点不仅能打在语句上,变量也可以接受断点,

上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是可以加条件的,和上面的介绍的条件断点的设置是一样的。

3、 方法断点

 

方法断点就是将断点打在方法的入口处,

方法断点的特别之处在于它可以打在 JDK的源码里,由于 JDK 在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。

4、 改变变量值

代码停在了断点处,但是传过来的值不正确,如何修改一下变量值保证代码继续走正确的流程,或是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确?

在Debug 视图的 Variables 小窗口中,我们可以看到 mDestJarName 变量的值为 " F:\Study\eclipsepro\JarDir\jarHelp.jar "

我们可以在变量上右键,选择"Change Value..." 在弹出的对话框中修改变量的值,

 

或是在下面的值查看窗口中修改,保用Ctr+S 保存后,变量值就会变成修改后的新值了。

5、 重新调试

 

这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用的开始处。

回退时,请在需要回退的线程方法上点右键,选择 "Drop to Frame"

6、 远程调试

用于调试不在本机上的程序,有两种方式,

1、本机作为客户端

2、本机作为服务端

使用远程调试的前提是服务器端和客户端的代码是一致的。

 

本机作为客户端

本机作客户端比较常用,需要在远端的服务器上的java程序在启动时打开远程调试开关,

服务器端需要加上虚拟机参数

1.5以前版本(1.5以后也可用):【-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 】

1.5及以上版本:【 -agentlib:jdwp=transport=dt_socket,server=y,address=8000】

F:\Study\eclipsepro\screensnap>java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar screensnap3.jar

连接时远程服务器时,需要在Eclipse中新建一个远程调试程序

这里有一个小地方需注意,连接上的时候貌似不能自动切换到Debug视图,不要以为本机的调试程序没有连接到服务器端。

 

本机作为服务端

同本机作为客户端相比,只需要修改一下“Connection Type”

 

这时Eclipse会进入到等待连接的状态

连接程序使用如下参数即可连接本机服务器,IP地址请用实现IP替换~~

【-agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000】

F:\Study\eclipsepro\screensnap>java -agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000 -jar screensnap3.jar

 

远程调试时本地的代码修改可同步到远程,但不会写到远程的文件里,也就是说本地修改会在下次启动远程程序时就没有了,不会影响到下次使用时的远程代码。

 

有关远程调试更详细点的介绍请参考【使用 Eclipse 远程调试 Java 应用程序】

 

 

好像漏了一个断点,异常断点,补一下。

7、异常断点

经常遇见一些异常,然后程序就退出来了,要找到异常发生的地方就比较难了,还好可以打一个异常断点,

上图中我们增加了一个NullPointException的异常断点,当异常发生时,代码会停在异常发生处,定位问题时应该比较有帮助。

Java——断点调试 Java的断点调试是程序开发中非常重要的一个技术,它允许开发者在程序执行时暂停执行,以便检查变量的状态、观察程序的流程、并定位错误。 阅读详情

相关推荐

Java调试体系

Java调试体系,就是虚拟机的一整套用于调试的工具和接口。通过JDPA提供的API,开发人员可以方便灵活的搭建Java调试工具。 JPDA组成模块 JVMTI(Java虚拟机工具接口) JDWP(Java调试线协议) JDI(Java调试接口) JVMTI JVMTI定义了虚拟机应该提供的调试服务,包括调试信息(Information譬如栈信息)、调试行为(Action譬如客户端设置一个断...

程序员野蛮成长 467

Eclipse中如何打断点

首先打开工程项目 第一种是,把鼠标移动想要设置断点的行,在行号前面空白地方双击,就会出现断点 第二种是,在菜单栏找到"Run",点击 在弹出的下拉框内找到“Toggle Breakpoint”,点击也可以进行断点 第三种就是,把鼠标移动要设断点的地方,直接用快捷键“Ctrl+Shift+b",然后断点就出来了 使用f6跳转至下一步骤 ...

weixin_42707543的博客 1万+

在Eclipse中设置断点的条件

其中一个常用的调试功能是设置断点,它可以让程序在特定位置停下来,以便我们检查变量的值、执行流程等。在"Condition"(条件)文本框中,输入你希望设置的条件。例如,如果你想在某个变量的值等于特定值时触发断点,你可以输入类似于"variable == value"的条件。在Eclipse中,我们可以通过设置断点的条件来实现这一目的。通过上述步骤,你可以在Eclipse中设置断点的条件。当满足设置的条件时,程序将在断点处停止执行,你可以通过Eclipse提供的调试工具来检查变量的值、执行流程等。

2301_79331230的博客 2324

Eclipse调试常用技巧

本文写给那些像几年前的我一样刚刚走出校门,及一些未使用过这些高级些的调试技巧的人。     记得刚刚毕业的时候,自己连断点也不会打,当时还在用JCreate ,就连毕业设计也是用 System.out 找 Bug 的,想想真的很笨。开始工作后,一个星期过去了,在一个 1 、 2 百万行的系统中找 Bug ,我依然在用 System...

daimojingdeyu 1079

Java 开发必备:Eclipse 的代码调试断点设置

在 Java 开发过程中,代码调试是不可或缺的环节。当程序出现错误或不符合预期的行为时,我们需要一种有效的方法来定位问题所在。Eclipse 作为一款功能强大的 Java 集成开发环境(IDE),提供了丰富的调试功能,其中断点设置是调试的核心手段之一。本文的目的就是详细介绍在 Eclipse 中如何设置断点,以及如何利用断点进行高效的代码调试。范围涵盖了断点设置的基本原理、操作步骤、实际应用场景以及相关的工具和资源推荐。

Java大师兄的博客 785

量化策略开发步骤系列(5)前向测试和统计意义

我们在第 4 部分,展示了我们策略的样本外测试并讨论了其结果。用于开发模型的数据是 2018 年至 2021 年的数据,测试数据是 2021 年至 2022 年的数据。但有一种方法可以更好地利用我们的数据。

码上助君的专栏 1846

java调试_深入Java调试

java调试 软件错误是开发过程中不可避免的一部分。 因此,Java调试是每个程序员都应具备的一项核心技能。 它不仅可以帮助您了解程序流程,还可以提高代码质量。 最后,它提高了您作为开发人员解决问题的能力,并最终提供了质量更高的软件。 本文深入探讨了Java调试的一些最重要的技巧和技术。 在生产环境中调试Java时,我们还将介绍最佳实践。 项目的Java调试 本节汇总了调试Java...

编程故事的地方 2225

深入解析SAP MM模块OBYC自动科目分配机制:从T030表到实战配置

本文深入解析SAP MM模块中OBYC自动科目分配机制,阐明其作为连接物流与财务核心桥梁的作用。文章以T030表为核心,详细拆解其字段结构与检索逻辑,并通过采购收货、生产发料等实战场景,手把手演示配置步骤与关键要点,帮助读者掌握从原理到实践的完整知识体系,实现业财无缝对接。

nft7creator的博客 358

java调试

如何调试Java程序?大家最开始学习Java,都会觉得IDE调试好高端有木有,其实很简单了。下文会尽量简单直观的教会你在Eclipse中调试,其他的IDE调试步骤也是类似的。1.在你觉得有错的地方设置断点。在代码行数前,点击右键,注意是右键,然后选择Toggle Breakpoint。你可能会问,我如何知道在哪儿放置断点?如果对这个问题完全没有感觉,你完全可以多打几个断点,单步调试直到找到异常,只...

wang_666_的博客 1万+

超频玩家必看:TestMem5配置文件详解与内存稳定性测试实战(含黄金参数包)

本文详细解析了TestMem5(TM5)在内存超频稳定性测试中的核心价值与实战应用,特别针对DRAM颗粒特性提供黄金参数配置。通过anta777等专业配置的深度剖析,指导超频玩家精准定位内存故障,优化时序参数,实现性能与稳定性的完美平衡。涵盖从初级验证到极限压测的全流程方案,是硬件发烧友提升系统稳定性的必备指南。

weixin_29198045的博客 1814

自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO

下面是一个关于自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO)的博客,希望可以帮助您。提示:以下是本篇文章正文内容,下面案例可供参考在上面的代码中,表示粒子的数量,表示解空间的维度,表示迭代次数,表示优化的目标函数。在__init__方法中,我们初始化了粒子群的位置和速度,并将每个粒子的位置作为其最优解,将其适应度值初始化为正无穷。我们还初始化了学习因子和惯性权重的参数。在run方法中,我们迭代了次,计算每个粒子的适应度值和最优解。

weixin_52026057的博客 9916

用GDB 调试Java程序

用GDB 调试Java程序 陈皓http://blog.youkuaiyun.com/haoel  背景 想要使用GDB调试程序,就需要用GNU的编译器编译程序。如:用GCC编译的C/C++的程序,才能用GDB调试。对于Java程序也是一样的,如果想要用GDB调试,那么就需要用GNU的Java编译器——GCJ来编译Java程序。 目前,很多Linux都不会预装Sun的JVM

陈皓专栏 【空谷幽兰,心如皓月】 3万+

巡检机器人的基于ROS系统的任务管理架构设计总结

本文探讨了基于ROS(机器人操作系统)的工业巡检机器人任务管理架构设计,提出分层闭环方案。架构围绕稳、准、活、扩四大目标,分为感知层(多源数据融合)、调度层(智能决策)、执行层(动作控制)和数据层(存储交互)。关键技术包括ROS2实时性优化、功能包复用和多机器人协同调度。实践案例显示,该架构在电力巡检中使任务完成率达99%,在化工园区实现95%覆盖率。当前挑战包括SLAM地图漂移和多机通信延迟,未来可通过语义SLAM和区域通信优化。

start_up_go的博客 474

java远程调试_JAVA的远程调试方法

首先,JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。JAVA的调试方法如下:1。首先支持JVM,并设置参数,使之工作在DEBUG模式下,加入参数:-Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,suspend=n,o...

weixin_31200621的博客 1561

华为OD机试真题2025双机位C卷 C++ 实现【卡牌游戏】

小明正在尝试一种新的牌游戏。游戏规则只如下:首先,小明拿到一张写有数字m的牌。 然后,他会拿到另外n张牌,上面分别写有不同的数字,牌排成一排。小明的目标是从这排牌中找到一串连续的牌,这些牌上数字的总和可以被 m整除。你的任务是判断小明是否可以完成这个目标。

MISAYAONE的博客 281

30、航空公司调度问题的数学模型解析

本文详细解析了航空公司调度问题中的核心数学模型,包括航班时刻表生成、机组人员排班和飞机调度的建模方法与求解技术。通过定义变量、约束条件及目标函数,结合线性规划、整数规划等方法,帮助航空公司实现高效调度。文章还探讨了模型的优化策略、简化方法以及实际应用案例,为提升航空运营效率提供了理论支持和实践指导。

beer8的博客 259

java远程调试,Eclipse调试

debug需要调试器(eclipse是一种调试器)和目标应用程序(待调试的程序)协同工作,这样才能有效调试,因此,调试链路有两个节点:调试器和目标应用程序。这两个节点都可以作为服务端,等待对方的连接,该参数就是控制究竟哪一方作为服务端的。n:运行程序启动脚本后,jvm自动加载,然后开启debug端口号。应用程序开启debug模式,启动应用,然后调试器进行连接。y:运行程序启动脚本后,发现jvm会暂停,直到调试器连接过来后,jvm会继续加载。启动后会停止,等调试器启动后在运行。n:调试器作为服务端。

木槿 554

成功解决 OllamaError: status code 400, message: model ‘llama3.2:latest‘ not found 报错

本文针对Ollama更新后出现的OllamaError: status code 400, message: model 'llama3.2:latest' not found报错,分析了其根本原因——2026年1月Ollama将Llama 3.2模型命名从llama3.2:latest改为meta-llama/Llama-3.2:7b-instruct等新格式。解决方案包括:1)使用新模型名称;2)升级Ollama SDK;3)查询确认本地可用模型;4)批量更新旧项目脚本。通过正确适配新命名规则,

博客 1398

Java程序的调试原理及调试体系JDPA

基本原理 Java 程序都是运行在 Java 虚拟机上的,我们要调试 Java 程序,事实上就需要向 Java 虚拟机请求当前运行态的状态,并对虚拟机发出一定的指令,设置一些回调等等,那么 Java 的调试体系,就是虚拟机的一整套用于调试的工具和接口。 我们要调试一段Java程序,首先要知道运行该程序的Java虚拟机进程运行在什么机器上,然后就是要和这个进程建立连接,接下来才能进行调试。 比如说...

GoodIdea 878

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java调试案例

我们去查找和改正错误的过程称为调试

2401_89176842的博客 610

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java远程调试

Java远程调试配置说明 Java远程调试是指在本地连接远程的服务器java服务进行调试,便于利用线上环境,无需在本地进行环境搭建,数据准备,重现问题,直接进行代码调试问题排查。Java远程调试配置总体上分两步: java服务器配置 本地调试配置 服务器配置 需要在服务器服务启动文件中增加如下启动参数 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 其中address=5005是指端口5005,可以自行指定,su

qyaxx的博客 8255

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java调试概述

From https://yq.aliyun.com/articles/56?spm=5176.100238.yqhn2.7.NLnzoh 程序猿都调式或者debug过Java代码吧?都体会过被PM,PD,测试,业务同学们围观debug吧?说调试,先看看调试严格定义是什么。引用Wikipedia定义: 调试(De-bug),又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。...

二次方生存 528

java 调试 方法_调试 Java 类

调试 Java 类MobiLink 提供了各种可以帮助您调试 Java 代码的信息和工具。本节介绍您可以在何处找到此信息以及如何利用这些功能。MobiLink 服务器日志文件中的信息MobiLink 服务器将消息写入消息日志文件中。服务器日志文件包含以下信息:Java 运行时环境。可以使用 -jrepath 选项在启动 MobiLink 服务器时请求特定的 JRE。缺省路径为随 SQL Anywh...

weixin_39684454的博客 403

java调试协议

JDWP:java debug wire protocol (java调试协议) 说明:java支持远程调试 1、cmd 输入 java 2、输入: java -agentlib:jdwp=help 参数说明: suspend=y|n 是否在启动时等待 transport= 传输的规范(dt_socket) address=<listen/attach address> 传输规范(地址和端口) server=y|n 是否监听调试器 Examples 1、

weixin_47035576的博客 516

Java远程调试详解

远程调试是指通过网络连接,将本地开发环境的调试工具与远程JVM(Java虚拟机)相连接,进行代码的调试。远程调试与本地调试的主要区别在于,调试对象不再是在本机上运行的JVM,而是通过网络访问的远程JVM。生产环境的代码调试。本地开发环境和远程服务器分离时的调试。分布式环境中的调试。Java远程调试是一项非常强大的调试工具,它能够帮助开发人员在无法直接访问生产环境的情况下,快速定位和修复问题。通过合理的配置和实践,我们可以高效、安全地进行远程调试操作,提升开发和运维效率。

一碗黄焖鸡三碗米饭的博客 1405
上一篇: java synchronized 的实现机制
下一篇: android 安全机制
chenghai2011
博客等级 码龄15年 22粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值