一种就是用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命令进行代码调试了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)