我可以通过JNI调试在本机代码中创建的JVM吗?

时间:2017-07-26 23:21:12

标签: java c++ java-native-interface

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

谢谢! 丹

1 个答案:

答案 0 :(得分:2)

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

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

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