当从 Java(使用 JNI)调用 C 中定义的方法时,JVM 内部会调用哪些方法?执行流程是什么样的?
- 即考虑一个方法
public native void display()
。当从 java 代码调用此方法时object.display()
,在执行 native 代码时调用的内部 JVM 方法是什么? - 在哪里可以找到更多相关文档?或者,我可以查看和跟踪源代码中的哪个 JVM 函数?
最佳答案
如果您想查看确切的执行链,我建议使用 gdb(或 CLion)连接到 JVM 并查看回溯。
看看这里,看看如何做到这一点:
您还可以在这里查看:
https://www.youtube.com/watch?v=8Cjeq4l5COU
一旦连接到 JVM,您就可以在 C 代码中设置断点并从上到下检查回溯。
或者,您可以创建 SIGSEGV 并生成 JVM 的完整回溯(请查看此处: http://jnicookbook.owsiak.org/recipe-No-015/ )
关于java - 通过 JNI 内部调用 JVM 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44422146/