java - 我可以通过 JNI 调试以 native 代码创建的 JVM 吗?

标签 java c++ java-native-interface

我有一个 C++ 程序,它使用 JNI_CreateJavaVM() 函数创建 JVM。该程序运行良好,但我希望能够调试 Java 代码中的事件,例如添加断点。 JDB 调试应用程序似乎具有 -attach 和 -connect 参数,这些参数可能能够连接到我在 native 代码中创建的 JVM。有人这样做过吗?可以让它发挥作用吗?或者,是否有其他方法可以调试以 native 代码创建的 JVM?

谢谢! 丹

最佳答案

如果您可以指定 JVM 的启动参数,则可以打开调试连接端口。

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

每个 Java IDE 都可以使用此协议(protocol),例如,请参阅 Intellij IDEA 中的“运行”->“附加到本地进程”。

关于java - 我可以通过 JNI 调试以 native 代码创建的 JVM 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45338943/

相关文章:

C++ `long long` 变量类型

c++ - 通过多重私有(private)继承扩展类——这是一回事吗?

java - SDL_SetVideoMode 试图释放一个没有被 malloc 的指针(?)

java - findLibrary 在 Android Studio 中使用 OpenCV4Android 返回 null

java - 如何使用 Android Studio 创建一个 Activity 并与按钮链接以打开?

java - Eclipse 中是否有用于 ANT 任务的 SecureInputHandler?

c++ - 如何关闭标准智能指针的自定义删除功能?

java - 在 Mac OSX 上为 OpenCV 编译 Android JNI

java - ORMLite createOrUpdate() 记录同时保留特定列?

java - Eclipse 在我的 src 文件夹中看不到任何内容