【问题标题】:Gdbserver exits on start and causes hangsGdbserver 在启动时退出并导致挂起
【发布时间】:2020-08-26 10:59:25
【问题描述】:

我正在尝试使用 gdbserver 调试 ARMv7 Android 应用程序 .so。我已经下载了适用于 Mac 的 android NDK,并将位于 prebuilt/android-arm/gdbserver/gdbserver 的 gdbserver 推送到机器上。我正在使用 Nox App Player v3.0 Mac 版。

当附加到进程时,它会产生以下输出:

$ adb shell gdbserver :5055 --attach 2289
Attached; pid = 2289
ptrace(regsets_fetch_inferior_registers) PID=4034: Device or resource busy
ptrace(regsets_fetch_inferior_registers) PID=4034: Function not implemented
ptrace(regsets_fetch_inferior_registers) PID=4034: Function not implemented
Warning: ptrace(regsets_store_inferior_registers): Device or resource busy
Warning: ptrace(regsets_store_inferior_registers): Function not implemented
Warning: ptrace(regsets_store_inferior_registers): Function not implemented
writing register 0: Function not implemented
Exiting

我尝试附加的应用程序随后挂起。模拟器/手机的其余部分可以正常工作,我可以使用主页和菜单按钮关闭应用程序。只是它试图附加的应用程序停止工作,直到我重新启动它。我可以附加到其他随机进程号,即使它确实对此有点抱怨。即使我在它们被暂停时附加应用程序也会出现此问题。检查应用程序的 /data/data/ 文件夹显示 .so 正在运行的应用程序使用的是 ARMv7。

我尝试使用prebuilt/android-x86/gdbserver/gdbserver 版本的gdbserver 来看看会发生什么。这个版本加载过程很好,没有挂起,我可以用 NDK 提供的 GDB 连接到它。当然,这也意味着我无法加载.so,因为gdbserver版本是x86而不是ARM。有没有办法解决这个问题?

【问题讨论】:

    标签: android gdb remote-debugging gdbserver


    【解决方案1】:

    也许你可以为你的目标机器编译gdbserver

    您可以输入uname -m查看平台。

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 2013-02-08
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多