gpt4 book ai didi

java - 有没有办法转储/查看 jni globalref 池?

转载 作者:行者123 更新时间:2023-11-29 07:44:26 29 4
gpt4 key购买 nike

我最近在做很多 JNI 工作,想监视(或至少转储)jni globalref 池的内容。 Google 尚未提供任何有用信息。

我注意到,如果您确实触发了 globalref-pool 耗尽,它会列出池中的前 10 项,所以我希望有某种方法可以做到这一点。

最佳答案

在 Dalvik VM 中,全局和(对于当前线程)本地引用表由 dalvik/vm/Jni.cpp. 中的 dvmDumpJniReferenceTables() 打印到日志中。这是从 dalvik/vm/native/dalvik_system_VMDebug.cpp 中的 Dalvik_dalvik_system_VMDebug_dumpReferenceTables() 调用的,可通过 dalvik.system.VMDebug.dumpReferenceTables() 从 Java 源代码访问 method .

批准的调用方式是通过 android.os.Debug.dumpReferenceTables() method ,标记为 @hide,即它不是公共(public) API 的一部分。所以你应该通过反射来调用它。

我不知道这在 ART 下是否有任何作用。

关于java - 有没有办法转储/查看 jni globalref 池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27146953/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com