问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在安卓系统上使用arm-linux-gdb调试内核

发布网友 发布时间:2022-03-24 11:09

我来回答

1个回答

热心网友 时间:2022-03-24 12:39

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 = 0; i < 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命令进行代码调试了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 安卓NEXUS6手机下载软件ARM64 X86 ARM这些都是什么意思好复杂 android是arm还是x86 安卓手机怎么看CPU和内存? Android,ARM,Linux之间有什么联系? 当前市面上的安卓手机中,CPU都是ARM吗 如何判断android客户端是否与服务器(arm)连接上谢谢了,大神帮忙啊 安卓手机qq里的arm文件怎样打开 安卓系统手机微信arm文件怎样打开 怎么查看android 是arm还是x86 iphone6s发热严重怎么解决 微信群图标怎样改 如何更改微信app的图标名称 手机桌面微信的图标不见了软件还在怎么样把图标放回桌面? 安卓系统如何把微信图标变色 微信图标被改变,怎么办? 微信图标可以改成粉色,这种可爱风有多人们追捧? 怎样更换手机软件图标 怎样更改微信图标 iPhone更换微信图标教程火了,安卓手机也可以操作吗? 手机桌面微信图标怎么更换 ARM系统和 android X86 有什么区别吗 暴风影音安卓版的解码插件armv6怎么用啊? 操作系统、cpu核数、ARM、ROM、RAM是什么?手机运行的流畅和哪些有关?给我通俗的解释一下!? android arm linux 是什么关系 单片机与ARM的区别是什么 android怎样获取system/lib/arm arm是什么处理器? 最新android工程目录下armeabi-v7a,armeabi的具体含义,有什么区别 ARM与单片机的区别和选择 微信里找不到自动扣费 微信自动扣费在哪里设置 微信自动扣款服务在哪里 微信中自动扣款在设置中怎么取消 微信自动接听怎么设置方法 华为微信后台运行怎么设置在哪里 微信服务号怎么设置自动回复 钉钉签到工作状态显示税平台怎么取消? 钉钉个人页面怎么移除考勤状态? 钉钉消息栏显示怎么修改 浙政钉里显示你已在会议中怎么取消