记录本机代码进行的调用
在Java 中,例如Java 运行时库中的几个本机方法可以调用常规(基于字节码)方法。我想知道是否有一些 VM 命令行参数或一些仪器工具或 API 可用于此类调用。
PS 请注意,我对调用到本机代码不感兴趣,而是从本机代码调用。
In Java, several native methods e.g. in the Java Runtime Library may call regular (bytecode-based) methods. I would like to know if there is some VM command-line parameter or some instrumentation tool or API that I can use to such calls.
P.S. Note that I am not interested in calls to native code but from native code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Linux 上,您可以使用 ltrace 来检测对调用 Java 方法的 JNI 函数的调用,例如CallVoidMethod、CallObjectMethod 等。
On linux, you could use ltrace to detect calls to the JNI functions that call Java methods, such as CallVoidMethod, CallObjectMethod, etc.
您是否正在寻找类似 Java 本机接口 (JNI) 的东西?
Java 本机接口 (JNI) 是一个编程框架,允许在 Java 虚拟机 (JVM) 中运行的 Java 代码调用本机应用程序(特定于硬件和操作系统平台的程序)和用其他语言编写的库,以及被本机应用程序调用。语言,例如 C、C++ 和汇编。”
JNI 维基百科文章
Are you looking for something like Java Native Interface (JNI)?
"The Java Native Interface (JNI) is a programming framework that allows Java code running in a Java Virtual Machine (JVM) to call and to be called by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages, such as C, C++ and assembly."
JNI Wikipedia Article