代码之家  ›  专栏  ›  技术社区  ›  Thimmayya

我可以从Eclipse/IDE调试器连接到远程计算机上的JSADebugd进程吗?

  •  7
  • Thimmayya  · 技术社区  · 17 年前

    我在Linux上运行了一个Java进程,但是它不能在调试模式下启动/重新启动。我读到关于 jsadebugd 命令并启动了守护进程,但我想从一个IDE(可能是Eclipse)调试器或yourkit或jconsole连接到它。我该怎么做?远程JVM是1.6+。

    3 回复  |  直到 16 年前
        1
  •  1
  •   jayshao    16 年前

    我假设,因为您提到了yourkit和其他工具,所以您真正想要做的是查看应用程序中的对象状态。有几个选项,虽然我不认为它能让你像Eclipse或其他调试器那样设置断点(尽管我很感兴趣的是什么限制你在调试模式下启动进程-技术上?过程?)

    1. 您是否尝试过连接: VisualVM ?我不认为你需要在调试模式下启动,它 使您能够导航对象图并检查对象。您甚至可以使用它来获取堆转储并通过它们执行一些特殊的分析,使用 OQL 查询。

    2. 如果你在JDK6+上运行-你试过用btrace进行检测吗?一些 notes from the sailfin team 听起来很有前途,就像Solaris中的dtrace,这似乎在各种情况下都很有用。

        2
  •  0
  •   Petr Gladkikh    16 年前

    我不确定是否正确理解您的限制,但是您可以在启用调试服务器(为JDWP提供服务)的情况下启动JVM。请参见中的“Sun VM调用选项”示例。 http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.html

    然后您可以将Eclipse调试器连接到运行JVM。请参阅此处的“远程调试”部分 http://www.ibm.com/developerworks/library/os-ecbug/

        3
  •  0
  •   kschneid    16 年前

    我不确定Eclipse是否暴露了这一点,但下面介绍如何使用JDB:

    http://java.sun.com/javase/6/webnotes/trouble/TSG-VM/html/tooldescr.html#gbmog