使用JPDA远程debug

本文介绍如何使用JPDA进行Java应用调试,包括配置Tomcat以JPDA模式启动及在Eclipse中设置远程调试的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP),以及 Java 调试接口(JDI)。而像Eclipse和IDEA这种开发工具提供的图形界面的调试工具,其实就是实现了JDI。关于JPDA的详细信息,可以查看developerWorks上的系列文章——深入Java调试体系

    复制tomcat/bin下的catalina.sh,重命名为catalina_debug.sh,将其中的  CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS" 替换为:

CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

  参数:-Xdebug 启动debug模式

-Xrunjdwp  : 加载JVMJPDA参考实现库

transport=dt_socket socket连接,也可选dt_shmem通过共享内存的方式连接到调试服务器

address=8000 调试服务器的监听端口

server=y 是否是服务端,n为客户端

suspend=n 启动过程是否加载暂停,y为启动时暂停,方便调试启动过程

    然后以JPDA模式启动tomcat:

./catalina_debug.sh jpda start

   在Eclipse中配置Remote Debug:

Debug Configurations --> Remote Java Application --> 选择工程,填入机器地址,调试端口


   

    

使用IDEA进行远程调试时,需要确保远程服务器的代码支持远程调试。为了实现这一点,需要在启动时加上特定的JVM参数。这些参数包括:-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port}。其中,${debug_port}是调试端口号,可以根据需要进行配置。\[1\] 然而,有时候在使用公司内部的自动化部署平台NDP进行应用部署时,可能会遇到一些问题。该平台声称支持远程调试,只需要在配置页面中设置调试端口号,并重新发布应用即可。但实际上,我在使用NDP时遇到了一个问题。在NDP发布的应用的JVM参数列表中,与远程调试相关的参数是:-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=127.0.0.1:5555。这导致我无法通过5555端口连接到远程调试。\[2\] 需要注意的是,在JVM架构中,调试功能本身并不存在于JVM内部,而是通过外部工具实现的。这些调试工具可以在JVM本地或远程运行。这种设计方式实现了解耦和模块化的架构。\[3\] 综上所述,如果你想在IDEA中进行远程调试,你需要确保远程服务器的代码支持远程调试,并在启动时加上特定的JVM参数。同时,需要注意NDP平台可能存在的配置问题。 #### 引用[.reference_title] - *1* *2* [使用Intellij IDEA远程debug服务器Java代码](https://blog.youkuaiyun.com/lovedingd/article/details/126413664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用Idea进行java应用的远程调试(Remote debugging)](https://blog.youkuaiyun.com/baidu_41632451/article/details/99467731)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值