Linux内核分析——第十八章 调试】的更多相关文章

第十八章    调试 18.1 准备开始 1.在用户级的程序里,bug表现比较直接:在内核中却不清晰. 2.内核级开发的调试工作远比用户级开发艰难的多. 3.准备工作需要的是: (1)一个bug (2)一个藏匿bug的内核版本 (3)相关内核代码的知识和运气 18.2 内核中的bug 1.内核中的bug多种多样. 2.引用空指针会产生一个oops:垃圾数据会导致系统崩溃. 3.定时限制和竞争条件都允许多个线程在内核中同时运行产生的结果. 18.3 通过打印来调试 一.健壮性 1.健壮性——在任何…
第十八章 调试 调试工作艰难是内核级开发区别于用户级开发的一个显著特点. 18.1 准备开始 我们需要什么? 一个bug 一个藏匿bug的内核版本 思路:假定能够让bug重现 在用户级程序中,bug直截了当.在内核中,bug不是那么清晰. 18.2 内核中的bug 往往要经历一系列的连锁反应才可能触发 需要考虑的问题:定时限制.竞争条件,它们都是运行多个线程在内核中同时运行产生的结果 18.3 通过打印来调试 Printk():内核的格式化打印函数 18.3.1 健壮性 任何时候,任何地方都可以…
Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报  分类: 内核协议栈(22)  版权声明:本文为博主原创文章,未经博主允许不得转载. 内核版本:2.6.34      在发送报文时,可以调用函数setsockopt()来设置相应的选项,本文主要分析IP选项的生成,发送以及接收所执行的流程,选取了LSRR为例子进行说明,主要分为选项的生成.选项的转发.选项的接收三部分…
姓名:江军 ID:fuchen1994 实验日期:2016.3.13 实验指导 使用实验楼的虚拟机打开shell cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>的童鞋应该是a piece of…
第十八章 调试 18.1 准备开始 1. 需要的只是: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 2. 在跟踪bug的时候,掌握的信息越多越好. 18.2 内核中的bug 1. 内核bug多种多样,产生的原因有很多:从错误代码(没有把正确的值存放在恰当的位置):到同步时发生的错误(共享变量锁定不当):再到错误的管理硬件(给错误的控制寄存器发送错误的指令). 2. 从降低所有程序的运行性能到毁坏数据再到使得系统处于死锁状态都可能是bug发作时的症状. 3. 从隐藏在源代码中的…
第十八章调试 18.1 准备开始          需要准备的东西: l  一个bug:大部分bug通常都不是行为可靠而且定义明确的 l  一个藏匿bug的内核版本:找出bug首先出现的版本 l  相关内核代码的知识和运气 最好能让bug重现,有一些bug存在而且有人没办法让他重现,因为内核与用户程序和硬件间的交互很微妙. 18.2内核中的bug 可以有无数种原因产生,表象也变化多端.代码中的错误往往引发一系列连锁反应,目击者才看到bug. 18.3通过打印来调试 内核提供了打印函数printk…
Linux内核分析课程总结 By 20135203齐岳 知识梳理 (思维导图地址http://mindmap.4ye.me/mkxM0cFh/1) 从start _ kernel构造一个新的Linux内核开始,0号进程rest _ init创建了1号进程kernel _ init从而启动Linux内核,这个过程的中心思想其实一直贯穿在Linux内核操作系统之中.1号进程通过复制PCB创建出更多的进程:当进程无法满足功能时就编写自定义的可执行程序,装载这些可执行程序的过程其实就是进程创建的一个变形…
Linux内核学习总结 首先非常感谢网易云课堂这个平台,让我能够在课下学习,课上加强,体会翻转课堂的乐趣.孟宁老师的课程循序渐进,虽然偶尔我学习地不是很透彻,但能够在后续的课程中进一步巩固学习,更加深刻.上个学期学习了Linux基本的指令与操作方法,这学期的课程中终于运用上了,感觉到收获知识的满足感.课程的步骤是先建立起内核的大体框架,让我们理解各个子系统的设计理念和构建思想,这些理念让我有一个清晰的脉络,然后,给我们一项一项讲解.实践具体的实现方法.函数,我们就了解到这些函数,针对的是哪些设计…
Linux内核分析 链接汇总 Linux内核分析第一周学习总结--计算机是如何工作的 Linux内核分析第二周学习总结--操作系统是如何工作的 Linux内核分析第三周学习总结--构造一个简单的Linux系统MenuOS Linux内核分析第四周学习总结--扒开应用系统的三层皮(上) Linux内核分析第五周学习总结--扒开应用系统的三层皮(下) Linux内核分析第六周学习总结--进程的描述和进程的创建 Linux内核分析第七周学习总结--可执行程序的装载 Linux内核分析第八周学习总结--…
程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 每周实验报告: 反汇编一个简单的C程序http://www.cnblogs.com/ClareOhno/p/5223874.html 操作系统是如何工作的http://www.cnblogs.com/ClareOhno/p/5248098.html 跟踪分析Linux内核的启动过程http://www.cnblogs.com/ClareOhno/…