博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四周学习笔记
阅读量:4668 次
发布时间:2019-06-09

本文共 842 字,大约阅读时间需要 2 分钟。

1505842-20181105073250833-380952490.jpg

第四周学习笔记

2018-11-03实验楼实验三:

使用实验楼的虚拟机打开shell,启动内核;

···
cd LinuxKernel/
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img
![](https://img2018.cnblogs.com/blog/1505842/201811/1505842-20181105072528557-1943605287.png) 内核启动完成后进入menu程序,支持三个命令help、version和quit;qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S

![](https://img2018.cnblogs.com/blog/1505842/201811/1505842-20181105072611980-192698417.png)开一个shell窗口,使用gdb跟踪调试内核;

gdb

(gdb)file linux-3.18.6/vmlinux # 在gdb界面中targe remote之前加载符号表
(gdb)target remote:1234 # 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行
(gdb)break start_kernel # 断点的设置可以在target remote之前,也可以在之后
```
运行vmlinux
1505842-20181105072636859-651039344.png
break x.cpp:n 在x.cpp的第n行设置断点,然后gdb会给出断点编号m。break 函数名:在函数处设断点。即在start_kernel处设断点。
1505842-20181105072904887-2147155737.png
按“c”让程序继续运行
1505842-20181105072801493-1441453763.png
可以看到在函数start_kernel处停了。
1505842-20181105072833011-300327420.png
设置第二个断点 idle.
1505842-20181105072914585-2138660035.png
1505842-20181105073305472-601117081.jpg

转载于:https://www.cnblogs.com/Ychancy/p/9907130.html

你可能感兴趣的文章
定时器与锁
查看>>
Tomcat的部署+第一个Servlet
查看>>
javaweb中解决中文乱码问题
查看>>
3-8《Ruby元编程》第二章对象模型
查看>>
987. Binary Number with Alternating Bits
查看>>
十四、Hadoop学习笔记————Zookeeper概述与基本概念
查看>>
回调函数的原理及PHP实例
查看>>
卸载驱动出现:rmmod: can't change directory to '/lib/modules': No such file or directory
查看>>
Scratch与物理·天文:模拟中国嫦娥探月工程,探索月球的背面!
查看>>
大话数据结构 -04-3 队列
查看>>
插入排序算法(C实现)
查看>>
多线程技术 初步
查看>>
Linux_基础_软件包管理
查看>>
DPDK 16.04/16.11.2 默认tx offload是关闭的引起tx vlan offload无效
查看>>
VS2019中,一个解决方案拥有多个项目,如何快速选择启动项目
查看>>
E20170816-mk
查看>>
E20180404-ts
查看>>
hibernate的数据关联映射
查看>>
验证码的例子(转)
查看>>
proof of reserves and proof of liabilities and fractional reserve
查看>>