怎么实现远程调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么实现远程调试相关的知识,希望对你有一定的参考价值。

参考技术A   1、找到我的电脑,计算机图标,右键“属性”。

  2、进入系统和安全设置,选项卡中,找到“远程设置”右上角位置点击打开

  3、在“系统属性”,远程选项中,点击远程桌面连接的“允许人员版本远程桌面的计算机连接 ”,推荐勾选,不然低版本的操作系统可能就不能远程这台电脑了。

  4、设置远程桌面用户。点击确定之后,会提示一个对话框要求添加设置远程桌面用户,点击添加。

  5、对于操作系统管理员默认就已经在这个组里面的不需要在添加,可以添加其他用户,其他

项目实现远程Debug调试

基本概念

  • 由于部署环境的不同,经常会出现开发环境测试正常.但是在测试环境,甚至生产环境会出现异常的问题
  • 生产环境中处理异常问题的方式比较单一,通常是通过生产环境中的项目运行日志获取运行中环境上下文,分析日志并尝试重现Bug. 但是这回引起以下的问题:
    • 日志分析工作非常耗时
    • 日志记录有时不一定能反映出问题,可能需要多次重复分析日志,猜测问题,添加日志,部署项目,获取日志这样的过程来逼近问题
  • 为了解决上述问题,需要进行远程Debug调试:
    • 将程序在测试环境中使用Debug模式启动
    • 在本地环境中使用IDEA在工程中设置断点进行项目调试

远程调试

配置jvmArguments参数

  • Maven项目的pom.xml文件中配置jvmArguments参数 : -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n
<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments>
			</configuration>
		</plugin>
	</plugins>
</build>
  • 添加jvmArguments参数配置后的Maven项目部署后就可以支持远程Debug调试了
  • jvmArguments中的参数说明:
    • -Xdebug: 通知JVM在Debug模式下工作
    • -Xrunjdwp: 通知JVM使用Java debug wire protocol运行调试环境,这个参数中包含以下的Debug调试选项
      • transport: 指定调试数据的传输方式
        • dt_socket: 使用Socket模式传输数据
        • dt_shmem: 使用共享内存方式传输数据.这个方式只适用于Windows平台
      • address: 进行调试的服务器的端口号,也就是客户端用来连接服务器的端口号
      • server: JVM是否作为调试调试服务器执行.值为y或者n
      • suspend: 是否在调试客户端建立连接之后启动JVM.值为y或n

打包调试项目

  • 使用IDEA工具对需要调试的项目进行打包,获取到项目的jar

启动参数部署项目

  • 使用支持远程调试Debug的启动参数对项目进行部署
java -agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n -jar com.oxford-v1.0.jar
  • 启动成功后,就会监听5005端口

配置IDEA的远程Debug

  • 在启动项中,选择Edit Configuration进行配置的编辑
  • 选择 +Add New Configuration, 选择Remote, 然后添加远程Debug配置
  • Remote的配置中,添加远程Debug配置,包括HostPort. 配置完成后,点击ApplyOK按钮

使用远程Debug调试

  • 在启动项中选择远程启动项Remote启动,通过Debug启动项目
  • 在项目中添加断点即可进行项目的远程调试

以上是关于怎么实现远程调试的主要内容,如果未能解决你的问题,请参考以下文章

myeclipse怎么进行远程调试,远程debug

debug 调试原理理解

为啥我不能远程调试?我怎么能找出原因?

项目实现远程Debug调试

项目实现远程Debug调试

.Net 远程调试