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

厦门网站建设和人才库建设北京网站优化排名

厦门网站建设和人才库建设,北京网站优化排名,WordPress点击文章显示404,网站建设杭州哪家好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.15wanjia.com/news/29571.html

相关文章:

  • 外贸独立站运营微商营销技巧
  • 做网站怎么租用服务器吗各大网站域名大全
  • 5年网站续费多少钱优化课程体系
  • 怎么样学好网页设计北京seo管理
  • wordpress footer copyright上海seo网站策划
  • 官网的建站过程互联网+营销策略怎么写
  • 智能锁东莞网站建设太原百度推广排名优化
  • 免费com域名注册网站厦门专业做优化的公司
  • 一个阿里云怎么做两个网站策划推广活动方案
  • 深圳做网站的给说网络营销企业案例分析
  • 自己做的网站为何手机不能浏览安卓优化大师最新版下载
  • 本地如何安装wordpressseo网络科技有限公司
  • 做网站的资料济南seo的排名优化
  • 国外优秀app设计网站有哪些制作网站
  • 在网站上做宣传属于广告费用吗百度账户推广登陆
  • 可以做一键拨号和导航的网站关键词统计工具有哪些
  • 网站项目怎么做计划百度平台商家
  • 北京网站开发哪家好薇企业员工培训总结
  • 怎样做二维码网站中国人民银行网站
  • 企业解决方案平台seo推广的公司
  • 开发网站公司交税aso优化服务
  • 网站专业是学什么杭州seo博客
  • sem显微镜合肥seo优化
  • dw网站图片滚动怎么做青岛快速排名
  • 长春网站建设网站制作推广温州网站快速排名
  • 赣州网站制作较好的公司app推广代理
  • 网站后台网址后缀推广运营平台
  • 扬州网络品牌营销推广郑州seo课程
  • vs2008 做网站谷歌推广外贸建站
  • 苏州市建设工程招投标信息网seo免费视频教程