使用Eclipse 进行远程 Debug 调试

news2025/1/18 14:39:14

Eclipse远程调试

Java自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。

由于部署环境的差异性,都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况。一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取运行中的环境上下文,分析日志文件并尝试重现bug。这会带来的问题还是不少的,首先,日志的分析是一项比较耗时的工作;其次,现有的日志记录不一定能反映出问题,可能需要多次重复这个过程(分析日志->猜测问题->加日志->部署->获取日志)来慢慢逼近问题。倘若是测试环境,还多了一项可供选择的手段——远程调试——将程序在测试环境中以debug模式启动,在本机使用Eclipse在工程中设置断点进行调试。

【具体步骤】

  1. 修改服务器启动参数

在服务器上的进程启动参数中添加:

-Xdebug -Xrunjdwp:transport=dt_socket,address=6666,server=y,suspend=n

连接到myhost:6666提供的调试服务。

-Xdebug通知JVM工作在DEBUG模式下,

-Xrunjdwp通知JVM使用(Java debug wire protocol)运行调试环境。该参数同时包含了一系列的调试选项:

transport指定了调试数据的传送方式;

dt_socket是指用SOCKET模式;

server=y/n VM 是否需要作为调试服务器执行;

suspend=y/n 是否在调试客户端建立连接之后启动 VM 。

设置完成后,启动服务端。

2. 启动本地代码

设置 Debug configurations-->Remote Java Application

注意在点击【Debug】按钮之前,一定不要多次“启动本地程序”,否则就会出现"Failed to connect to remote VM. Connection refused"异常,如下图所示:

3. 调试远程客户端

点击【Debug configurations】中的debug按钮,运行效果如下,接下来,就和本地调试一模一样了。在调试过程中,日志打印在远程服务器,本地console中看不到日志信息。调试的时候需要一个Http客户端发起请求,比如postman等等。

条件断点

如果需要对循环中的数据进行调试,使用条件断点是个不错的选择。将断点设置在指定的位置上,右键进一步设置断点属性,如下:

调试时,程序会中断在符合条件的代码处。

异常断点

断点不仅可以设置在某一行,也可以针对整个工程进行设置。假设知道程序会在某个地方抛出NullPointerException,可是并不是每一次运行都会出现,就可以为工程设置异常断点,如下:

总结

对于使用Eclipse进行日常编程工作的程序员,调试是每天都在进行的工作。Eclipse提供的远程调试功能有时也是一个比较实用的高级功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532600.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解《基于 javascript 的流程图编辑框架LogicFlow》

1、LogicFlow 是什么 LogicFlow 是一款流程图编辑框架,提供了一系列流程图交互、编辑所必需的功能和灵活的节点自定义、插件等拓展机制。LogicFlow 支持前端研发自定义开发各种逻辑编排场景,如流程图、ER 图、BPMN 流程等。在工作审批配置、机器人逻辑编…

opencv 图像识别

opencv的目标是使计算机可以快速准确地从数字图像中提取和分析特征。它使用了许多新的算法和技术,例如改进的模板匹配、基于统计的特征分析以及深度学习等。opencv支持多种平台,包括 Windows、 MacOS、 Linux和 Android,开发者可以使用 OpenC…

Collection线程不安全的举例

目录 一、前言二、单线程环境下三、多线程环境四、解决方案方案一:Vector方案二:Collections.synchronized()方案三:采用JUC里面的方法 五、HashSet线程不安全六、HashMap线程不安全 一、前言 1、当我们执行下面语句的时候,底层进…

项目注意总结

过了周四删 天山天池 游览路线 看抖音,没啥可避坑的,220的缆车 风景独好,看选择; 天山天池,又称天池国家地质公园,古称“瑶池”,位于昌吉州阜康市境内,博格达峰的北侧&#xff0c…

eBay 工程师:API 变革面临挑战,契约测试能否成为解决方案?

近年来,随着微服务架构的广泛采用,契约测试(Contract Testing)越来越受欢迎。在这篇文章中,我们将分享我们在 eBay 的契约测试的经验。 在微服务架构中,服务通常通过远程过程调用或异步消息进行整合。测试…

测试管理的能力和素质

测试管理是软件开发中至关重要的一环,测试管理员需要具备一系列的能力和素质来确保项目成功交付。以下是测试管理者需要具备的能力和素质: 1. 技术能力 测试管理员需要对软件测试技术有深入的了解,包括测试策略、测试计划、测试用例设计、测试…

OLED 液晶屏显示模块(0.96寸)

OLED模块例程 一、OLED 简介: OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。因为具备轻薄、省电等特性&#xff…

互联网用户之间如何传输大文件

互联网用户之间如何传输大文件? 现在的工作,基本上都离不开互联网,网络越来越发达,互联网传输大文件时常发生,但是有没有一款合适的大文件传输工具,很伤脑,下面整理了一些互联网用户之间如何传…

USB SS-PHY Tuning

1 USB 3.0 PIPE PHY 1.1 USB 3.0 PHY USB 3.0 PHY PIPE wrapper PCS SerDes 1.2 SS PHY电流源 CML电流源串联在NMOS管的Source中,电流是16 mA,所以差分电压摆幅是16 mA x (50 // 50) x 2 800 mV。 1.3 PIPE PHY数据线宽度 DWC_usb3_databook_2.50a.p…

涂鸦智能生活App SDK:全量级灵活定制,让你的App更具差异化

之前一期,我们介绍过涂鸦 OEM App 开发方案(点击查看往期介绍),它集品牌 UI 自定义、服务、运营、商城营销于一体,无需代码,开发者点选拖拽即可快速配置想要的常用功能,最快 10 分钟即可完成一款…

【敬伟ps教程】历史工具、画笔、橡皮擦

文章目录 历史工具面板上的操作按历史记录选项历史记录画笔历史记录艺术画笔 画笔工具画笔基本操作画笔预设画笔面板 铅笔工具背景橡皮擦魔术橡皮擦 历史工具 窗口–历史记录 历史记录是从上到下是操作步骤,编辑时会有很多历史记录,点击下方删除按钮可删…

产线故障ar远程协助系统为运维提供可视化的画面

说起AR增强现实技术,其适为企业设计、生产、装配、销售和运维所有链条提供更优的解决方案,今天为您具体介绍AR远程专家协助技术应用工作制造中的好处。 1、设备、产线发生重大故障,需要厂家派人来现场,停工损失巨大; 2、借助手机进…

【PyQt】PyQt学习(三)QWidget介绍

概述 QWidget 类是所有 Qt GUI 界面类的基类,是 PyQt 程序中的最小元素,也就是所有可现实的控件的基类。一个继承自 QWidget 的类可以在屏幕上绘制自身,这是因为 QWidget 继承了 QPaintDevice 类,该类用于将控件绘制在屏幕上。每一…

leecode每日一题 1054 距离相等的条形码

题目描述 在一个仓库里,有一排条形码,其中第 i 个条形码为 barcodes[i]。请你重新排列这些条形码,使其中任意两个相邻的条形码不能相等。 你可以返回任何满足该要求的答案,此题保证存在答案。 示例 1: 输入&#xf…

JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程

接上节课内容 JS逆向 -- 分析某站buvid3和_uuid的加密过程 JS逆向 -- 分析某站b_lsid值加密过程 一、清除cookie信息,刷新网页,ctrlf搜索sid,这样找到的数据是在url里或者响应信息里面,全局搜索找到的一般都是在js里面的数据&a…

ChatGPT生成Excel统计公式——检查数据是否满足要求

背景需求 有一张表格如下,需要统计每个用户是否在第一到第三周中,每周发文数量都大于等于两篇,是的话给出Yes,否的话给出No 操作流程 给出描述,让ChatGPT生成对应的公式,条件如下: 在excel中…

【保护和自动控制 JDX-1000信号继电器 机械保持、电复归 JOSEF约瑟】

名称:信号继电器;型号:JDX-1000系列;品牌:JOSEF约瑟;额定电压:110、220VDC/AC;起动电流:3mA;稳定电流:2A;功率消耗:不大于…

TH2822D手持式 LCR数字电桥产品资料

TH2822D是一款手持式LCR数字电桥,可测量电容、电感和电阻,具有高精度、高灵敏度、低功耗和易于携带等特点。TH2822D适用于生产、现场维修和科研等多个领域。 TH2822D手持式LCR数字电桥的主要特点如下:1. 标准源四终点测量方法,准…

【优秀!44个HCIA-Datacom知识点总结】

1、IPV4地址的组成部分?IP地址长度?表达形式?如何区分网络位和主机位? 组成部分:网络位主机位 IP地址长度:32bit 表达形式:点分十进制 区分:子网掩码区分,为1是网络位&am…

以云原生推动代际跃升,2023通明湖论坛云原生分论坛召开

5月12日,由神州数码主办,北京经开区国家信创园、中关村云计算产业联盟协办的2023通明湖论坛-云原生分论坛在京召开。本次论坛,以“抓住云原生机遇,推动我国信息基础设施技术代际跃升”为主题,聚焦以云原生为核心引领的…