在JNI上内部调用JVM函数

时间:2017-06-07 20:25:25

标签: java c jvm java-native-interface

当从Java调用C中定义的方法(使用JNI)时,在JVM中调用的方法是什么?执行流程是什么样的?

  1. 即。考虑一种方法public native void display()。当从java代码调用此方法为object.display()时,当执行继续执行本机代码时,调用的内部JVM方法是什么?
  2. 我在哪里可以找到更多关于此的文档?或者,我可以查看和跟踪源中的哪个JVM函数?

1 个答案:

答案 0 :(得分:1)

如果你想看看确切的执行链,我建议使用gdb(或CLion)连接到JVM并查看backtrace。

看一看如何做到这一点:

http://www.owsiak.org/?p=2095

你也可以看一下:

https://www.youtube.com/watch?v=8Cjeq4l5COU

一旦连接到JVM,就可以在C代码中设置断点并从上到下检查回溯。

或者,您可以创建SIGSEGV并生成JVM的完整回溯(请查看此处:http://jnicookbook.owsiak.org/recipe-No-015/