java - 如何将调试器附加到 jvm.dll 执行的 java 程序?

标签 java jvm

我有一个用 C++ 编写的 Windows 可执行文件。它加载libJVM作为共享库,然后通过JNI执行java程序。 我想使用 Eclipse IDE 调试该 java 程序。我怎样才能做到这一点?作为最后的手段,我什至可以修改C++程序。

最佳答案

我认为您需要将调试参数添加到由 C++ 代码创建的 JavaVM 实例。

Eclipse native 启动器代码可以激发您的工作。看看Windows version启动器并检查 startJavaJNI 函数(第 305 行)。有库 libPath 的路径和参数 vmArgs。我认为 vmArgs 可以包含常用的 -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4242 字符串以及其他选项。

您需要将其转换为 JavaVMInitArgs 中的附加 JavaVMOption 元素。

关于java - 如何将调试器附加到 jvm.dll 执行的 java 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40389120/

相关文章:

java - 为什么这些方法编译成汇编?

java - 沙盒 JVM 以保护服务器免受不受信任的来源

java - 显示通知或在应用程序中使用react

Java/Swing : Obtain Window/JFrame from inside a JPanel

java - 如何模拟 Springockito 模拟的行为?

java - java.io.FileInputStream.readBytes(Native Method) 的无限 100% CPU 使用率

java - 正常启动tomcat和调试启动tomcat的根本区别是什么?

java - 基本数组和循环 Java

java - 如何从 Java 中的 Cloud Function 触发 Cloud Dataflow 管道作业?

java - Weblogic、JVM 和 EAR