Linux内核分析第五周学习总结

本文详细介绍了系统调用中断处理的过程,并通过GDB调试工具进行实操演示,包括更新菜单、添加配置项、生成根文件系统及调试系统调用流程。读者将了解到系统调用作为特殊中断的特性,掌握从system_call()到iret的简单流程,并通过GDB调试提升调试技巧。

扒开系统调用的三层皮(下)

20135237朱国庆+ 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
分析system_call中断处理过程
1)先更新menu
745383-20160327175813683-7198529.png

2)在main函数中添加新的MenuConfig并添加相应函数
745383-20160327175858011-837400966.png
745383-20160327175926479-391413642.png
745383-20160327175948979-203327991.png

3)之后进入menu中使用make rootfs=>自动编译生成根文件系统
745383-20160327180011464-1138597307.png

745383-20160327180035776-98918514.png

745383-20160327180049604-1324081914.png

开始使用GDB调试

首先qemu -kernel linux-3.18.6/arch/x86/bzImage -initrd rootfs.img -s -S
然后gdb 进入文件file linux-3.18.6/vmlinux;target remote:1234。
设置断点:
745383-20160327180549401-1907550681.png

system_call()到iret的简单流程

745383-20160327183003151-2137413190.jpg

总结:

总的来说对gdb调试了解的还是不够深入。但是通过本节的学习我学习了以下知识:
系统调用是一种特殊的中断。了解了从-system_call()到iret的简单流程。

转载于:https://www.cnblogs.com/20135237zero/p/5326410.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值