2020-2021-1 20209310《Linux内核原理与分析》第八周作业

这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)>
这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第八周作业>
这个作业的目标 学习Linux内核如何装载和启动一个可执行程序
作业正文 https://www.cnblogs.com/bestYZF/p/14057642.html
1.更新menu,,用test_exec.c将test.c覆盖,然后重新编译rootfs。
rm -rf menu
git clone https://github.com/mengning/menu.git
cd menu
mv test_exec.c test.c
make rootfs

2.启动内核到调试的状态,加载符号表并设置端口,准备单步调试。

qemu -kernel ../linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -S -s

3.启动新的端口开始gdb调试,设置断点"sys_exec""load_elf_bianry""start_thread"

(gdb)file linux-3.18.6/vmlinux
(gdb)target remote:1234
(gdb)b sys_exec
(gdb)b load_elf_binary
(gdb)b start_thread

4.进行单步调试。


通过"readeld -h hello"命令查看elf文件的头部信息,可以看到入口地址为0x8048736,对应的10进制地址即为134514486,与new_ip指向的地址一致。

posted @ 2020-11-29 20:02  我只是飞  阅读(79)  评论(0编辑  收藏  举报