手把手教你使用eclipse+qemu+gdb来单步调试ARM内核【学习笔记】

本文详细介绍了如何编译Linux源码,包括设置环境变量、配置内核、制作镜像和设备树。然后在Ubuntu中安装EclipseCDT,创建内核工程,并配置调试环境,使用gdbserver和arm-none-eabi-gdb进行远程调试。通过QEMU运行内核,并在Eclipse中设置断点进行单步调试。
摘要由CSDN通过智能技术生成

一、编译linux源码

1 export CROSS_COMPILE=arm-linux-gnueabi-
2 export ARCH=arm
3 make vexpress_defconfig
4 make bzImage -j4、
5 make dtbs
二、建立eclipse工程

ubuntu没有安装eclipse的小伙伴赶紧执行如下的明来安装一下:

sudo apt-get install eclipse-cdt

2.1 新建一个eclipse调试的内核工程

FILE—>NEW —> Makefile Project with Existing Code 
在这里插入图片描述

为工程选择一个合适的名字,以及内核代码路径,之后点击finish

在这里插入图片描述

之后在工程界面选择run—>Debug Configurations

点击c/c++ attach to application 新建一个选项,设置选项的名字,选择工程kernel4.0,定位我们编译源码的vmlinux路径.

技术分享图片

切换到debug选项,设置如下,选择gdbserver,gdb debug设置为arm-none-eabi-gdb:

在这里插入图片描述

切换到connection选项,端口号改为1234,设置到这里也就差不多来阿,点击apply,最后点击debug,之后工程回搜索这个木兰,我们要暂停下来。

技术分享图片

在进入单步调试的时候先运行qemu

1 qemu-system-arm -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage -append “rdinit=/linuxrc console=ttyAMA0 loglevel=8” -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -S -s

点击debug运行我们的工程,在控制台 输入file vmlinux,b do_fork来设置我们的断点,输入C运行我们的工程,之后eclipse就会跳转到do_fork函数,之后的单步调试以及查看相关的变量,我相信大家应该是知道咋设置的。

吐槽一下在ubuntu下截图软件我用的是shutter,感觉还是没有window的方便,大家有好的推荐吗?

技术分享图片

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值