我想在 Android 上调试 JNI 加载的本机库。我已经设置了调试环境来调试在 Bluestacks 上运行的本机代码。
我在有根的 Bluestacks 上安装了 gdbserver,在 Windows 环境中运行,并且我在我的 Windows 机器上从 Adroid NDK 获得了 gdb。
我发现虽然我无法调试在 Bluestacks 上运行的 ARM 本机代码,因为操作系统在 i686 架构中运行,并且 ARM 很可能被 Bluestacks 引擎以某种方式模拟。
我可以在 i686 上获得从 gdb 到 gdbserver 的连接,但是之后我无法将架构设置为 arm ( set architecture arm
) 并且调试器想要使用 i686 寄存器进行操作。
有什么方法可以实际设置 gdb 和 gdbserver 以切换到 ARM 架构,而 android 是为 i686 arch 编译的,并且它确实在 i686 上运行,这是我的 Windows 机器?我听说过 gdb-multiarch,但我不确定它是否是我需要的。我从 MinGW 包中尝试了 gdb 7.6,但它也没有帮助。