标签:
一、学习部分
1.如何给menuOS增加自己编写的命令Getegid,GetegidAsm?
1、强制删除menu (rm menu -rf)
2、更新menu代码至最新版本(git clone https://github.com/mengning/menu.git)
3、在test.c中main函数中增加MenuConfig,以及增加上周自己选择Getegid,GetegidAsm的代码
4、Make roofts自动编译,生成,和启动根文件系统
2.gdb跟踪自己编写的系统调用函数Getegid,GetegidAsm
使用gdb跟踪调试内核
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明:
# -S freeze CPU at startup (use ’c’ to start execution)
# -s shorthand for -gdb tcp::1234 若不想使用1234端口,则可以使用-gdb tcp:xxxx来取代-s选项
3.另开一个shell窗口
gdb
(gdb)file linux-3.18.6/vmlinux # 在gdb界面中targe remote之前加载符号表
(gdb)target remote:1234 # 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行
(gdb)break start_kernel # 断点的设置,注意寻找对应的系统调用函数名字,例如time命令对应sys_time
标签:
原文地址:http://www.cnblogs.com/20135336wwz/p/5314194.html