美文网首页
MyEclipse开启远程调试(非原著)

MyEclipse开启远程调试(非原著)

作者: 程序员小韩 | 来源:发表于2017-09-01 15:01 被阅读0次

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

    //远程调试端口  不能与其他端口相同

    很多时候我们调试程序工作都在开发环境上进行的,借助集成开发环境(IDE)双击就可以完成打断点。

    如果遇到如下情况

    1、现场生产环境

    2、提交测试的环境

    3、linux下的环境

    4、生成环境代码写得不完善,异常被吞了,但又想知道被吞的异常

    等等,这些环境出了问题,需要排查进行调试的时候,常规的调试方式可能有点显得遥不可及。

    下面介绍java的远程调试,分为三部分

    1、Jdb调试命令:jdb是jdk自带的工具,在bin目录下可以找到。

    2、MyEclipse远程调试:只要MyEclipse和程序所在的机器能相互ping通,可以选择这种方式,可视化方便快捷。

    3、自定义开发调试器:这部分不重点讲解,附件提供java调试体系文档,有兴趣可以研究一下,目前我知道的一般在大规模并发程序情况下,需要调式才有可能进行调试器自定义的开发,在没有必要的情况下,切勿重复干活。但不代表去了解这些东西没有用,java调试体系的机制,结构,思想也是前辈们智慧的结晶,有很多也是值得学习的地方,有些地方挺利索的,这些东西有时候是可以应用到项目程序设计中来,知山知水也是一种积累。

    上面这两个按钮可能大家天天都在用,你可曾想过他们是如何做到的呢,其实七星瓢虫的按钮只是在jvm启动参数加了调试模式的参数,三角形按钮正常启动,可以使用jconsole之类的看看启动参数。

    第一步:加入JVM远程调试参数,让JVM在debug模式下工作,加入的位置和配置最大最小内存位置一样

    最少参数如下,调试端口8008

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

    如下图,加完参数后可以启动服务了,可能会有端口冲突,,启动时候看一下有没有报错服务端的设置就完成了

    使用jdb调试

    Jdb –connect com.sun.jdi.SocketAttach:hostname=172.16.13.100,port=8008 -sourcepath H:\eptpworkplace\EPCore\src

    sourcepath 源码所在的文件夹,可以不指定,打断点有显示所有变量,再查看变量即可到达调式的目的

    连接上后,help可以查看可以使用哪些命令和用法

    打断点,比如在com.thunisoft.transferplatform.receive.ReceiveThreadRunnable 71行打断点,命令如下

    stop at com.thunisoft.transferplatform.receive.ReceiveThreadRunnable:71

    MyEclipse远程调试

    创建远程调用程序

    连接上后

    打断点调试,所选的项目不一定能运行,需要调试哪个文件有哪个文件就行,可以不是工程的全部源文件

    相关文章

      网友评论

          本文标题:MyEclipse开启远程调试(非原著)

          本文链接:https://www.haomeiwen.com/subject/nwxkjxtx.html