




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Pintos调试心得一、 如何用GDB调试内核:Ctrl+Alt+F1打开终端,cd切换到你的pintos/src/threads/build目录下输入命令pintos gdb run alarm-multiple(注意是双线- -,注意run前的空格)出现下面的界面:(注意uilts文件下已经编译通过,还有bochs打开终端调试)然后,Ctrl+Alt+F2打开第二个终端登录并切换到pintos/src/threads/build目录下输入命令pintos-gdb -tui看到如下界面:按enter键继续,此时为进入gdb调试控制台输入命令target remote localhost:1234(默认端口,应该与第一个终端里显示的一致)接着输入命令file kernel.o(载入要调试的内核程序),看到如下界面:输入y继续,这样开始调试啦(首先自己在网上百度一下gdb常用的调试命令)break main(在main函数入口插入断点)接着c(continue的意思跟VS、VC+中的调试命令对应)看到如下界面注意划红线部分输入n(执行下一步,不会进入函数体内部,step单步运行命令会进入函数内部)然后大家可以在第一个终端里查看运行结果。比如我在第79行添加了一行Ctrl+Alt+F1打开第一个终端可以看到执行结果接下来自己慢慢探索吧,感受一下gdb调试器的强大之处。下面介绍一下我对pintos的理解二、 Pintos内部函数调用内核加载完成后,进入main函数(pintos主程序)开始bootbss_init (); 初始化BSS,(BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。)argv = read_command_line ();/读取命令行argv = parse_options (argv);/分析命令行thread_init ();初始化主线程console_init ();/* 问候用户 */printf (Pintos booting with %PRIu32 kB RAM.n,init_ram_pages * PGSIZE / 1024);在终端打印/* 初始化内存系统*/palloc_init (user_page_limit);malloc_init ();paging_init ();/*初始化中断处理 */intr_init ();timer_init ();kbd_init ();input_init ();/* 开启线程调度,开启中断*/thread_start ();/创建idle空线程serial_init_queue ();timer_calibrate ();printf (Boot complete.n);/开机完成/* 运行内核命令行*/run_actions (argv);/这个函数会调用struct action a;中的方法/让我们进入a-function(argv),看到其调用run_task()函数,找到struct action的定义/自己查看一下/接着我们进入run_test()函数,看到其是tests.c中的,其调用结构体struct test中的/function()方法/进入该函数后我们已经接近alarm-multiple的真相了,看到test_sleep(5,7)它传入就是/的参数含义就是创建5个线程每个线程sleep迭代7次,这样我们就看到了运行结果/所显示的/进入test_sleep(5,7)然后我们在timer_sleep()处设置断点就可以观察到该函数被不断调/用/*然后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中班社会领域教案《乘坐公共汽车》反思
- 住宅楼基础工程安全管理方案
- 2025年城市污水处理厂深度处理工艺能耗分析与降低策略评估报告
- 2025年教育行业质量评估与认证体系评价标准与方法研究报告
- 2025年机械制造企业服务化转型中的智能制造与工业4.0解决方案报告
- 2025年成人教育终身学习体系构建与平台运营中的教育投资分析报告
- 信访信用治理制度的生成与作用逻辑
- 气球广告公司合伙协议书
- 河南省南阳市宛城区等2地2025-2026学年高二上学期开学考试思想政治试卷(含答案)
- 广东省深圳市桃源居中澳实验学校2025-2026学年高三上学期第一次月考物理试题
- 人才服务可行性方案
- (高清版)DZT 0004-2015 重力调查技术规范(150 000)
- 打扫卫生的社会实践报告
- 小学《道德与法治课程标准2022版》测试题
- 市政污水管道施工组织设计
- 服装陈列课件
- 产品认证控制程序
- 新教材-人教A版高中数学选择性必修第一册-第一章-空间向量与立体几何-知识点及解题方法提炼汇总
- 国家临床版20肿瘤形态学编码(M码)
- 国开电大组织行为学任务四调查报告
- GB/T 233-2000金属材料顶锻试验方法
评论
0/150
提交评论