实验七 Linux 内核如何装载和启动一个可执行程序
打开终端,在终端中输入以下内容
cd ~/LinuxKernel
rm menu -rf
git clone https://github.com/mengning/menu.git
cd menu
mv test_exec.c test.c
make rootfs
打开test.c
文件,查看exec
函数:
下面进行gdb
调试,在终端中输入
cd LinuxKernel
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -S -s
打开另一个终端,进入gdb
模式,设置三个断点
b sys_execve
b load_elf_binary
b start_thread
调试断点,输入po new_ip
指令打印"elf_entry"
所指向的可执行文件中定义的入口地址。可以看到地址为0x80495ba
结束调试,在终端中输入readelf -h hello
查看hello
的头部信息