ARM 调试

ARM 调试,第1张

在线调试有两种,一种是有ICE工具的,可尘御以直接在windows环境下安装arm的ads来下载交叉编译好的程序,进行下银兄穗载和调试。

一种就是用gdb调试。

你可以查查gdb的使用方法,gdb的话你安装linux pc机锋卜是对的。

如果你手上有开发板,你就应该不会问这些很容易的问题,因为你自己塌租可以解决。

分两行档种情况:

1 开发板上有uboot,档衫乱最简单的方法是通过tftp从网络下载到flash中,在PC端搞个tftp服务器,网络直接连接开发板;运行tftp addr file.bin

2 如果是裸板,通过仿真器下载

1,先下载最新版本的gdb源代码包,我使用的是gdb-7.6.tar.gz,使用tar命令进行解包(tar -xvzf gdb-7.6.tar.gz),cd进gdb-7.6/gdb目录,使用vi找到remote.c中的如下代码:

if(buf_len >2 * rsa->sizeof_g_packet)

error(_("Remote 'g' packet reply is too long: %s"),rs->buf)

将上面两行注释掉,梁桥添加如下代码

if(buf_len >2 * rsa->sizeof_g_packet)

{

rsa->sizeof_g_packet = buf_len

for(i = 0i <gdbarch_num_regs(gdbarch)i++)

{

if(rsa->regs[i].pnum == -1)

continue

if(rsa->regs[i].offset >= rsa->sizeof_g_packet)

rsa->regs[i].in_g_packet = 0

else

rsa->regs[i].in_g_packet = 1

}

}

使用如下命令对代码进行配置、编译和安装

./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v

make

make install

2,gdbserver使用android4.2模拟器中自带的版本(v7.1)

3,将NDK编译好的C/C++可执行清渣档程序,上传到模拟器中/data/test目录下,假设可执行程序的名称为testHello。

4,使用命令:gdbserver :7000 /data/test/testHello 启动模拟器端的调试。

5,启动arm-linux-gdb之前,使用vi打开~/.bash_profile文件,在其中添加:

export PATH=$PATH:/usr/local/arm-gdb/bin,以便在程序的其他目录可以直接启动arm-linux-gdb程序

6,cd至ndk编译好的testHello文件所在目录

7,使用如下命令进行端口映射:adb forward tcp:7000 tcp:7000,将模拟器的7000端口和本机的7000端口进行映射

8,使用命令:arm-linux-gdb testHello启答乱动gdb调试

9,使用target remote :7000 链接模拟器中gdbserver启动的服务。

10,自此,我们就可以使用gdb命令进行代码调试了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12426460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存