【问题标题】:How to view JNI local reference table?如何查看 JNI 本地引用表?
【发布时间】:2012-10-09 00:51:19
【问题描述】:

有没有办法查看JNI本地引用表的内容?

如果我在溢出时发生崩溃,我可以通过 android LogCat 看到它,并且有很多关于引用对象、唯一实例等的信息,这有助于捕获潜在的内存泄漏。

谢谢。

【问题讨论】:

  • 我不确定我是否理解您的问题,可能是您遇到了 JNI 崩溃,并且想找出堆栈跟踪中的地址对应于源代码中的哪一行,所以看看在How to use addr2line in Android 的答案上对你有帮助吗?
  • @Raimo 不。如果我遇到了崩溃,我可以在问题Android NDK overflows 中看到这个表,我想知道我是否可以在我的应用程序的正常工作期间查看这个参考表。
  • @为什么?对你有什么好处?您是否要根据其内容执行不同的代码?我想你真正要找的是PushLocalFrame()PopLocalFrame()
  • @EJP 不,如果我有很多未使用的本地引用,我想检查我的代码如何工作并改进它 - 以防止将来溢出。感谢 Push/PopLocalFrame,但它仍然不是我要搜索的内容。
  • 究竟如何才能拥有未使用的本地引用?如果可以的话,Push/PopLocalFrame 怎么不是一个合适的解决方案?

标签: java android android-ndk java-native-interface


【解决方案1】:

请参考CheckJNI

它可以捕获许多常见错误。如果 debuggable="true" 在您的 Manifest.xml 中,则默认情况下为 ICS CheckJNI 处于启用状态。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多