此版本一项值得注意的改进是全面重构了 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!
oleavr