将Intellij-IDEAdebugging器连接到正在运行的java进程

是否有可能将Intellij-IDEAdebugging器连接到正在运行的java进程?

是! 这是你如何设置它。

运行configuration

创build一个远程运行configuration:

  1. 运行 – >编辑configuration…
  2. 点击左上angular的“+”
  3. select最左侧窗格中的“远程”选项
  4. select一个名字(我叫我的“远程debugging”)
  5. 点击“确定”保存:

在这里输入图像说明

JVM选项

上面的configuration提供了三个只读字段。 这些选项告诉JVM在运行应用程序时打开端口5005进行远程debugging。 将相应的一个添加到正在debugging的应用程序的JVM选项中。 你可能会这样做的一种方式是:

export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" 

但这取决于你如何运行你的应用程序。 如果您不确定三者中的哪一个适用于您,请从第一个开始,然后沿着列表走下去,直到find可用的那个为止。

您可以将suspend=n更改为suspend=y以强制应用程序在启动之前等待连接IntelliJ。 如果要在应用程序启动时触发断点,这会很有帮助。

debugging

按照正常方式启动应用程序,然后在IntelliJ中select新的configuration并点击“debugging”。

在这里输入图像说明

IntelliJ将连接到JVM并启动远程debugging。

您现在可以通过在需要的地方向代码添加断点来debugging应用程序。 应用程序的输出仍然会出现在之前的位置,但是您的断点将在IntelliJ中打开。

这是可能的,但是当你启动你的应用程序时你必须添加一些JVM标志。

您必须添加远程debuggingconfiguration:编辑configuration – >远程。

然后,您将在显示的对话框窗口中find您必须添加到程序执行中的参数,例如:

 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 

然后当你的应用程序启动时,你可以附加你的debugging器。 如果你想要你的应用程序等待,直到debugging器连接只是改变挂起标志为y( suspend=y

显然你需要在应用程序JAVA_OPTS中添加“-Xdebug”标志,如果你想在debugging模式下连接。

在AndroidStudio或想法

  1. configuration应用程序将被debugging,打开编辑configuration

添加“VM选项”configuration“-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”记住“地址”

在这里输入图像说明

  1. configuration远程debugging器如果不存在,点击+添加

指定与第1步“地址”相同的“端口” 在这里输入图像说明