• MyEclipse远程调试Tomcat


    程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样。于是就灰常想看一下程序在远程运行时候的状态,希望让程序在远程运行,还可以在本机打断点跟一下,这就用到了用eclipse远程调试Tomcat。记得以前好久之前研究了一下,怎么也没弄成功。最近终于OK啦。

    一、调试准备

    首先得有一个在远程服务器上的Tomcat与一个在本地的Eclipse,还有就是一个已经部署在远程Tomcat上并且源代码在本地Eclipse上的程序。当然如果木有远程的服务器就用自己的本机当远程的服务器试下也行哈。

    二、配置tomcat

    1、如果远程服务器是Windows NT的环境,那就在%CATALINE_HOME%/bin 下建立debug.bat文件,在里面贴入如下内容: 

    set JPDA_ADDRESS=8888 

    set JPDA_TRANSPORT=dt_socket 

    set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 

    startup

    其中的两处8787是要启用的远程端口,当然任何未被使用的端口都可以。连接方式有两种,为dt_shmem和dt_socket,分别表示本机调试和远程调试。 

    2、如果远程服务器是Linux/Unix环境,就编辑%CATALINE_HOME%/bin/startup.sh文件,找到其中最后一行,将

    exec "$PRGDIR"/"$EXECUTABLE" start "$@" 

    改为

    exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

    默认的远程调试端口是8000,如果被占用,编辑%CATALINE_HOME%/bin/catalina.sh文件,将

    JPDA_ADDRESS="8000"

    改为

    JPDA_ADDRESS="8888"

    3 、在Windows下运行debug.bat 在Linux下运行 startup.sh启动Tomcat。

    如果在启动日志中出现

    Listening for transport dt_socket at address: 8888

    则说明远程调试端口监听成功。

    三、配置Eclipse

     在要调试的项目上右键,选择 调试方式->调试配置

    打开配置界面,选择 远程Java应用程序 新建一个远程调试

    IP地址就是远程服务器IP地址,端口是刚才配置的Tomcat的远程调试监听端口。配置好后点应用调试

    这时打开调试界面就可以看到线程状态,也可以随时断开调试。

    四、调试程序

    接下来就可以正常的打断点来调试远程服务器上的Java程序了,可以随时查看变量状态等,还是十分Happy的。不过目前没能把System.out.println()的东西打印到本地,如果有这样一种方法,谁知道请不吝赐教哦!~

  • 相关阅读:
    VTIL & NoVmp 源码简要分析
    无需 Root 使用 IDA 调试 Android Native
    QWB 2021 StandOnTheGaints Writeup
    外部调用可执行文件中的函数
    CISCN 2021 西南赛区 Fix Writeup
    CISCN 2021 西南赛区 Reverse Writeup
    AES Block Cipher Implementation in C
    MTCTF 2021 Inject Writeup
    【题解】电子科技大学第十九届 ACM 程序设计竞赛
    洛谷P2596 [ZJOI2006]书架
  • 原文地址:https://www.cnblogs.com/younggun/p/3269284.html
Copyright © 2020-2023  润新知