此版本一项值得注意的改进是全面重构了 Java.backtrace()。它现在采用惰性计算,速度提升超过 10 倍。我还完善了它的 API,目前该 API 已视为稳定。

开发 frida-java-bridge 时,我优化了 Env 对象的处理方式:如果当前线程已有实例,就会复用它。

其余改进列在下面的变更日志中,请务必查看。

尽情体验吧!

变更日志

  • 修复 i/macOS、Android 和 QNX 的 devkit,其中缺少部分 libiconv。
  • 改进 LLVM 工具链上的 devkit 打包。
  • 改进 GLib 的 diet 模式支持。
  • cmodule:公开 g_strndup()。
  • cmodule:公开 Gum 的线程局部存储 API。
  • java:重构 Java.backtrace(),改为惰性计算并提升超过 10 倍的速度。
    • 将线程切换和栈遍历逻辑移至 CModule。
    • 返回 Backtrace 对象,而不是由栈帧组成的数组。
    • 提供低成本的 id 属性用于去重。
    • 访问 frames 属性时才惰性计算栈帧。
  • java:尽可能避免创建成本较高的 Env。
  • python:改进索引 URL 处理。感谢 @GalaxySnail!