平台信息:linux4.0

平台:qemu

作者:庄泽彬

说明:笨叔叔的Linux视频的笔记

一、编译linux源码

 export CROSS_COMPILE=arm-linux-gnueabi-
export ARCH=arm
make vexpress_defconfig
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

  

 qemu-system-arm -M vexpress-a9 -smp  -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的方便,大家有好的推荐吗?

手把手教你使用eclipse+qemu+gdb来单步调试ARM内核【学习笔记】的更多相关文章

  1. ubuntu: qemu+gdb 调试linux kernel 学习笔记

    声明: 本笔记内容并非本人原创,90%来自网络资料的整合.同时,由于自己是刚刚接触qemu & gdbserver remote debug,本文也就算不得教程,仅供有缘人参考而已. ---- ...

  2. 手把手教你用Eclipse+TestNG搭建接口自动化测试框架

    转载于:http://qa.blog.163.com/blog/static/190147002201510275306185/ 把群博里关于接口自动化的文章都看了一遍,都是关于测试过程中遇到的问题及 ...

  3. Eclipse——手把手教新手安装Eclipse

    一.准备工作:安装JRE和JDK. 全名分别为:Java Runtime Environmen和Java SE Development Kit,推荐直接在某度软件中心下载即可,注意区分64位和32位. ...

  4. 手把手教你在Eclipse中使用CVS Branch功能

    Brach 的作用: 开发新版本的人员就基于 main trunk 工作,而 fix bug 的人员就基于 branch 工作. 一旦在 branch上将 Release_1_0的 bug修复了,我们 ...

  5. 手把手教你通过Eclipse工程配置调用JNI完全攻略

    本文地址:http://www.cnblogs.com/wavky/p/JNI.html 当你找到并鬼使神差地打开这个博文的时候,我敢肯定你已经知道什么是JNI,基本概念就不粘贴了. 百度出来的JNI ...

  6. 手把手教你安装Eclipse最新版本的详细教程 - 大佬的鸡肋,菜鸟的盛宴(非常详细,非常实用)

    简介 首先声明此篇文章主要是针对测试菜鸟或者刚刚入门的小伙们或者童鞋们,大佬就没有必要往下看了. 写这篇文章的由来是因为后边要用这个工具,但是由于某些原因有部分小伙伴和童鞋们可能不会安装此工具,为了方 ...

  7. ucore lab1练习2 qemu+gdb 不能协作调试的问题make lab1-mon

    本练习是qemu结合gdb调试,但是我做实验的时候并不能像视频输入make lab1-mon那样顺利调试,期间有各种error,后来我找到原因,请看解决方法. 请先把ucore_lab文件删除,以下全 ...

  8. gdb无法单步调试

    使用gdb调试单步程序时如果打印提示“single stepping until exit from function xxx,which has no line number information ...

  9. 手把手教你搭建SSH框架(Eclipse版)

    原文来自公众号[C you again],若需下载完整源码,请在公众号后台回复"ssh". 本期文章详细讲解了SSH(Spring+SpringMVC+Hibernate)框架的搭 ...

随机推荐

  1. git commit --amend用法

    提交信息很长时间内会一直保留在你的代码库(code base)中,所以你肯定希望通过这个信息正确地了解代码修改情况. 下面这个命令可以让你编辑最近一次的提交信息,但是你必须确保没有对当前的代码库(wo ...

  2. 消息队列(message queue)

    最近纠结于一个问题,就是horizon 在处理前台数据的时候非得等到cinder client将数据全部获取后才开始执行horizon的下一行代码,这给大量数据显示造成了很大的时延,其实对于用户体验来 ...

  3. ftp uploadFileAction(重要)

    TelnetOUtputStream os = ftpClient.put(filename); File file_in = new File(localPath); FileInputStream ...

  4. OpenCV学习笔记十五:opencv_features2d模块

    一,简介: 该库用于2D特征检测,描述与匹配.

  5. Nginx系列之负载均衡和反响代理

    NGINX介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行 其特点是占有内存少,并发能力强,事实上nginx ...

  6. JDK之ThreadLocal分析

    ThreadLocal是在是Thread的一个局部变量,今天我来分析了一下这个类 先看ThreadLocal的set方法 public void set(T value) { Thread t = T ...

  7. linux 下 Shell编程(三)

    if语句应用实例 if语句可以在程序中实现各种逻辑判断. 用if语句判断并显示文件的信息 可以用test命令和相关的参数来判断文件的属性,然后根据判断结果输出文件的信息. #!/bin/bash #4 ...

  8. react native的环境搭建中常见问题

    搭建完成android的环境,我们就可以继续我们的react native环境的搭建了. 当然,按照fb的安装流程来完成rn的搭建. http://facebook.github.io/react-n ...

  9. poj1676(转换为二进制求解)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=13175 题目关键:将0~9十个数转换为二进制数进行枚举比较 int ...

  10. 《从零开始学Swift》学习笔记(Day 24)——枚举

    原创文章,欢迎转载.转载请注明:关东升的博客  Swift中的枚举可以定义一组常量.提高程序的可读性:还具有面向对象特性. 使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式如下 ...