当前位置: 首页 > news >正文

兰州专业网站建设公司小吃培训机构排名前十

兰州专业网站建设公司,小吃培训机构排名前十,东莞响应式网站哪里好,兰州网站建设公司价格1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 测试环境 本文使用 Ubuntu 16.04.4 LTS QEMU 环境进行调试。 3. 用 GDB 调试 QEMU 内程序 3.1 编写用来调试的程序 我们用 ARM32 来进行调试…

1. 前言

限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。

2. 测试环境

本文使用 Ubuntu 16.04.4 LTS + QEMU 环境进行调试。

3. 用 GDB 调试 QEMU 内程序

3.1 编写用来调试的程序

我们用 ARM32 来进行调试,下面是用来测试的程序代码:

/* * start.S */.text.global _start
_start:mov r0, #81:b 1b

编译用的 Makefile

CROSS_COMPILE ?= arm-linux-gnueabi-CC := ${CROSS_COMPILE}gcc
LD := ${CROSS_COMPILE}gcc.PHONY: all cleanall: test.elftest.elf: start.S$(CC) -nostdlib -g -o $@ $<clean:-rm -fr test.elf

3.2 工具安装

3.2.1 安装 arm-linux-gnueabi-gcc

sudo apt-get install gcc-arm-linux-gnueabi

3.2.2 安装 gdb

sudo apt install gdb-multiarch

gdb-multiarch 支持多种目标架构,另外一种选择是交叉编译 ARM 平台的 gdb ,本篇不做展开。

3.2.3 安装 qemu

sudo apt-get install qemu

3.3 编译和调试

3.3.1 编译

start.SMakefile 放在同一目录下,然后运行:

make

将在目录下生成 test.elf 文件。

3.3.2 调试

我们调试程序,需要启动两个终端。第一个终端,QEMU 模拟 ARM 开发板 vexpress-a9 环境,用来运行程序 test.elf

sudo qemu-system-arm \-M vexpress-a9 -m 512M \-kernel test.elf -S -s -nographic

其中 -s 选项告诉 qemu-system-arm 启动内置的 gdb-server ,监听在 TCP 端口 1234 上;-S 选项告诉 qemu-system-arm 不要启动程序执行,等待 gdb 的指令。目前程序 test.elf 处于停止状态, qemu-system-arm 等待 gdb 客户端连接它,发送进一步的指令。现在用 gdb 连接 qemu-system-arm

$ gdb-multiarch test.elf
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from test.elf...done.
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
_start () at start.S:5
5		mov r0, #8
(gdb) info registers
r0             0x0	0
r1             0x0	0
r2             0x0	0
r3             0x0	0
r4             0x0	0
r5             0x0	0
r6             0x0	0
r7             0x0	0
r8             0x0	0
r9             0x0	0
r10            0x0	0
r11            0x0	0
r12            0x0	0
sp             0x0	0x0
lr             0x0	0
pc             0x10098	0x10098 <_start>
cpsr           0x400001d3	1073742291
(gdb) 

现在我们可以用 gdb 来调试程序 test.elf 了。当前状况下,gdbqemu-system-arm 的关系可以用下图来描述:

 -------------------------
|      qemu-system-arm    |
|   -----------------     |        -----
|  | gdb-server:1234 |<---|-----> | gdb |
|   -----------------     |        ------------------------------

4. 用 gdb 调试内核

# 启动内核,等待 gdb 的连接
sudo qemu-system-arm \-s -S \-M vexpress-a9 -smp 4 -m 512M \-kernel zImage -dtb vexpress-v2p-ca9.dtb \-nographic \-append "root=/dev/mmcblk0 rw rootfstype=ext4 console=ttyAMA0" -sd rootfs.img
# 调试内核
gdb-multiarch vmlinux

5. 参考资料

https://www.qemu.org/docs/master/system/gdb.html
http://www.mmbaike.com/news/23364.html

相关文章:

  • wordpress widgets_initseo刷点击软件
  • 苏州建设工程信息网站获客渠道有哪些
  • wordpress category nameseopc流量排名官网
  • 北京怀柔网站建设公司网站检测
  • 香港服务器试用优化大师卸载不了
  • 店铺怎么做推广和宣传建站seo是什么
  • wordpress下载资源站主题seo网站优化外包
  • 开发一个区块链app多少钱安徽网站seo
  • 棋牌游戏开发出售深圳seo网络优化公司
  • b2b网络平台有哪些博客seo优化技术
  • 网站运营是什么seo免费优化网址软件
  • 网站如何做搜索引擎优化百度贴吧热线客服24小时
  • 威海那家做网站好百度关键词指数排行
  • 用js做网站百度打开百度搜索
  • 公司网络监控都能监控到什么关键词优化公司网站
  • 哈尔滨信息网招聘信息seo优化按天扣费
  • 网站设计师薪资参考网站关键词排名优化价格
  • 如何把优酷视频放到网站上收录优美的图片app
  • 网页设计效果图分析seo站外推广有哪些
  • 有哪几个网站可以做贸易杭州谷歌推广
  • 申请免费的网站宁波网站建设制作报价
  • 广告宣传设计图本地网络seo公司
  • 不用关网站备案东莞疫情最新数据
  • 遵义网站建设哪家好推广公司经营范围
  • 清溪网站建设公司营销推广手段有什么
  • 如何在自己的服务器上做网站提高工作效率图片
  • 网站建设实训教程优化建议
  • 东莞专业网站建设自己如何免费做网站
  • 商丘网站建设线上免费推广平台都有哪些
  • 去国外做外卖网站好关键词挖掘站长