【问题标题】:Why is attaching gdbserver to a native android app failing?为什么将 gdbserver 附加到本机 android 应用程序失败?
【发布时间】:2021-08-07 01:04:04
【问题描述】:

我正在开发一个完全原生的应用程序,使用 C++ 和纯 CMake 作为构建系统 - 根本不涉及 Android Studio(概念证明here)

代码构建,apk 生成,可以通过 ADB 安装和运行没有问题,但我无法让 gdbserver64 附加到进程进行调试。

更多细节:

  • 应用是针对 SDK/NDK API 级别 30 构建的
  • 尝试在没有 Google Play 的 Android 11 模拟器实例上进行调试
  • 我可以运行 adb root 就好了
  • 图像已包含 gdbserver 和 gdbserver64,正在尝试使用这些
  • 在模拟器中启用开发者选项和 USB 调试
  • 应用在清单中有android:debuggable="true"

但每次我尝试gdbserver64 :5039 --attach $(pidof my.app.id)

我收到/bin/sh: <app_pid>: inaccessible or not found

我错过了什么?不,我不能只迁移到 Android Studio - 这是一个跨平台项目,需要仅使用 CMake 即可构建。

【问题讨论】:

标签: android cmake android-ndk gdbserver


【解决方案1】:

根据我的观察,这可能是预建的 gdbserver 的一个 bug。它将 --attach 后面的参数视为程序名并尝试启动它。

【讨论】:

    【解决方案2】:

    这不是一个真正的答案,但在与您类似的配置中,我收到了相同的错误消息并且无法克服这个问题。对我来说,切换到 lldb 会有所帮助,请参阅 e.g.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 2021-06-19
      • 2019-03-02
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      相关资源
      最近更新 更多