用命令行启动调试器

下面的逐步调试会话启动指令展示了 ADB 如何在将 GDB 而非 ADT 或 DDMS 用于调试的情况下仍然作为调试通信的基础。 让我们假定使用的是端口 1234。

启动进程:

gdbserver :1234 /system/bin/executable

或附加至现有进程:

gdbserver :1234 --attach pid

在您的工作站上,使用 adb 将端口 1234 转发至设备:

adb forward tcp:1234 tcp:1234


启动位于源代码树 "prebuilt" 区域中的特殊版本 gdb:

prebuilt/Linux/toolchain-eabi-4.x.x/bin/i686-android-linux-gdb (for Linux)

prebuilt/darwin-x86/toolchain-eabi-4.x.x/bin/i686-android-linux-gdb (for Darwin)

 

如果两个特殊版本的 gdb 都无法找到,运行 find prebuilt -name i686-android-linux-gdbin your source tree 来查找并运行最新版本。

务必使用符号目录中而非主要 android 目录中可执行文件的副本,因为主要目录中的副本已去除了符号信息。

在 GDB 中,告知 GDB 何处查找将要加载的共享库:

set solib-absolute-prefix /absolute-source-path/out/target/product/product-name/symbols

set solib-search-path /absolute-source-path/out/target/product/product-name/symbols/system/lib

absolute-source-path 为您的源代码树的路径。

 

确保指定正确的目录 – 如果您弄错目录 GDB 可能不会告知您。

通过发出 GDB 命令连接至设备:

(gdb) target remote :1234

:1234 告知 gdb 连接至本地主机端口 1234,后者通过 adb 桥接至设备。

现在可以用和之前相同的方式使用 GDB 开始调试运行于 Android* 上的 C/C++ 代码。

有关详细信息,请参阅文档 GDB* - The GNU Project Debugger

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值