如何使用arm-eabi-gdb调试android c/c++程序

以前尝试过用gdb调试android,但是收获不多,看到高人写的,先收藏着~~~~~~~~~~

原文地址:http://blog.csdn.net/sanlinux/archive/2010/07/10/5725557.aspx

1.获取gdbserver

prebuilt/android-arm/gdbserver

2.获取arm-eabi-gdb

prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin

3.启动emulator(即qemu虚拟机,调式linux内核时用到)

$adb remount && adb push gdbserver /system/bin

adb shell

#gdbserver 10.0.2.2:1234 /system/bin/ping

$telnet localhost 5554

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

Android Console: type 'help' for a list of commands

OK

]

KO: unknown command, try 'help'

**cmd**redir add tcp:1234:1234

OK

exit

Connection closed by foreign host.

$cd out/target/product/generic/symbols/system/bin && arm-eabi-gdb ping

(gdb) r

Starting program: 

Don't know how to run.  Try "help target".

(gdb) target remote localhost:1234

Remote debugging using localhost:1234

0xb0000100 in ?? ()

(gdb) l

1779 usage();

1780 if (argc > 5)

1781 usage();

1782 } else {

1783 if (argc > 10)

1784 usage();

1785 options |= F_SOURCEROUTE;

1786 }

1787 }

1788 while (argc > 0) {


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ccskyer/archive/2010/11/23/6029690.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: gcc-arm-none-eabi是针对ARM架构的嵌入式系统开发的GNU工具链。它是ARM公司官方推荐的工具链之一,常用于开发ARM Cortex-M系列微控制器。gcc-arm-none-eabi的版本命名规则是X.Y.Z,其中X表示主版本号,Y表示次版本号,Z表示修订号。 以gcc-arm-none-eabi-9-2019-q4-major为例,其中9表示主版本号,2019表示年份,q4表示季度(第4季度),major表示此版本是主要版本。 版本号的更迭主要是为了修复一些已知的漏洞和错误,增加新功能和优化性能。每个版本都可能有一些兼容性的变化,以及对新硬件的支持。因此,选择正确的gcc-arm-none-eabi版本是很重要的,以确保代码的正确编译和运行。 在选择gcc-arm-none-eabi版本时,可以考虑以下几个因素: 1. 目标平台:确保选择的版本支持目标平台的处理器架构和指令集。 2. 功能需求:查看版本发布说明,了解该版本是否具有您需要的新功能或改进。 3. 兼容性:与其他软件工具(如调试器、RTOS等)的兼容性,确保它们能够配合使用。 4. 社区支持:查看开源社区中对该版本的评价和反馈,了解其稳定性和可靠性。 总之,选择合适的gcc-arm-none-eabi版本是进行ARM嵌入式系统开发的重要环节,需要仔细考虑目标平台和功能需求,确保开发过程和项目的顺利进行。 ### 回答2: gcc-arm-none-eabi是一款针对ARM架构的嵌入式系统开发工具链。它是GNU开发工具链的一部分,专门用于编译ARM处理器的裸机程序或嵌入式系统代码。gcc-arm-none-eabi提供了C、C++和汇编语言的编译器,以及链接器、调试器和其他开发工具。它支持多种ARM处理器系列,包括Cortex-M系列和Cortex-R系列。 gcc-arm-none-eabi的版本号表示了工具链的发布版本。例如,版本为9-2020-q2-update表示是在2020年第二季度发布的第9版更新。不同版本的gcc-arm-none-eabi可能会包含不同的功能改进和修复,例如增强的编译器优化、新的设备支持和更好的调试功能。 选择合适的gcc-arm-none-eabi版本对于开发嵌入式系统非常重要。在选择版本时,一方面需要考虑所需的功能和设备支持,另一方面也要考虑与其他工具和库的兼容性。通常建议使用最新的稳定版本,以确保能够获得最新的功能和修复。 为了使用gcc-arm-none-eabi,我们首先需要将其安装在开发环境中,并设置好相应的环境变量。然后,我们可以使用gcc命令来编译和链接程序,并使用调试器进行调试。gcc-arm-none-eabi还提供了一些其他的工具,如objdump和gdb,用于查看和分析编译后的程序。 总之,gcc-arm-none-eabi是一款强大的嵌入式系统开发工具链,它提供了编译器、链接器和调试器等工具,用于开发ARM架构的裸机程序和嵌入式系统代码。选择适合的版本对于开发嵌入式系统至关重要,开发者可以根据需求选择最新的稳定版本。 ### 回答3: gcc-arm-none-eabi是GNU Compiler Collection (GCC) 的一个特殊版本,专门用于嵌入式系统开发,特别是针对使用ARM处理器的嵌入式设备。 根据具体的版本号来选择gcc-arm-none-eabi的版本是很重要的,因为每个版本都可能有不同的特性和优化。以下是一些常见的gcc-arm-none-eabi版本: 1. gcc-arm-none-eabi 4.x.x:这是早期版本,通常用于ARM处理器的较早的系列,如ARMv7和较旧的ARM Cortex-M系列。这些版本可能不支持一些新的ARM指令集和优化,但它们在大多数嵌入式应用中仍然很常见。 2. gcc-arm-none-eabi 5.x.x:这是较新的版本,支持更多ARM指令集和优化。它适用于绝大多数ARM Cortex-M系列处理器,包括较新的Cortex-M3、Cortex-M4和Cortex-M7。 3. gcc-arm-none-eabi 6.x.x:这是进一步改进和优化的版本,提供更好的性能和代码生成质量。它通常用于最新的ARM Cortex-M系列,如Cortex-M4、Cortex-M7和最新的Cortex-M33。 4. gcc-arm-none-eabi 7.x.x:这是当前正在积极开发和维护的版本,为最新的ARM Cortex-M系列提供了广泛的支持,并且还有一些新的优化和特性。这个版本被认为是ARM嵌入式开发的首选版本。 通过选择最适合目标设备的gcc-arm-none-eabi版本,开发者能够充分利用特定版本所提供的功能和改进,以获得更好的性能和更高的代码生成质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值