android - 从控制台使用 lldb 调试 Android 应用程序的 C++ 代码

标签 android c++ remote-debugging lldb

我想知道如何使用 lldb 调试 Android 应用程序。 我的意思是从控制台而不是通过 Android Studio 使用 lldb。

据我所知,Android Studio 正在这样做:

  1. 将应用推送到设备
  2. 启动这个应用
  3. 将 lldb-server 推送到设备
  4. 在远程设备上启动 lldb-server
  5. 转发端口
  6. 连接到转发给设备的本地端口

我想通过控制台使用 lldb 实现同样的效果。

假设我已经在远程设备上安装了 lldb-server(因为 Android Studio 已经为我做了这件事),我需要做的是从控制台使用 lldb 连接到应用程序吗?

最佳答案

从未尝试过,但也许这会有所帮助:

另外:

  • 确保 APK 的 native 库 (lib*.so) 具有调试信息/符号。我在本地拉取 apk,找到 .so 文件,然后检查 binutils nm 实用程序的输出。当您熟悉 .so 文件后,仅检查 .so 文件的大小就足够了。
  • 可以通过附加到正在运行的进程/应用程序 (attach) 进行调试,在某些情况下,您需要在应用程序启动时调试应用程序 (run)。
  • 在某些调试情况下,手机/模拟器需要 root access(文件操作)
  • 如果您设法在 Android Studio 中调试 C++ 库 - 检查 Debug+Console 和 Debug+LLDB 输出选项卡以找到有趣的命令/选项/步骤
  • 过程看起来相当复杂和脆弱 - 耐心地武装自己,不要忽视警告,也不要跳过步骤。

关于android - 从控制台使用 lldb 调试 Android 应用程序的 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53448796/

相关文章:

java - 如何在键盘出现时隐藏或保持底部导航向下,同时让文本编辑器工具栏上下移动?

android - 收藏的内容未在 webview 上正确显示

python - 是否可以使用 Python 为 iOS 和 Android 编写跨平台应用程序?

c++ - this_thread::sleep_for 在 WSL 的谷歌测试中不起作用

visual-studio-2010 - Visual Studio在其他电脑上远程上传调试

visual-c++ - Visual C++ 如何启动应用程序以在远程 PC 上进行调试?

java - Eclipse Android (ADT) 如何在 MainActivity 类中使​​用其他类的方法?

c++ - 为 iPhone 设备编译但不为模拟器编译的代码

c++ - 如何在 Windows 上的 qt 中获取 USB 设备的供应商 ID 和 PID?

delphi - 无法让 Delphi 2007 的远程调试器正常工作?