当从java中调用C中定义的方法(使用JNI(时,JVM中调用了哪些方法?执行流如何?
- 即。考虑一种方法
public native void display()
。当此方法从Java代码称为object.display()
时,称为"执行"的内部JVM方法是什么? - 在哪里可以找到有关此的更多文档?或者,我可以查看并跟踪源中的哪个JVM功能?
如果您想查看确切的执行链,我建议使用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/(