![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
饭没了吃
这个作者很懒,什么都没留下…
展开
-
fork函数在用户态的追踪
1.环境配置:a.在终端输入ddd命令,打开ddd调试工具。然后打开上文的test_fork可执行文件。注意 编译test_fork.c文件中,-g是将代码加入进去,便于ddd分析b.如下图所示,右键函数开始执行处,加上断点。c.在ddd中点击run命令,执行该程序。这样程序就会执行执行到断点处,下面开始分析程序。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。执行完sysenter后,fork函数执行执行到+16处,跳过了int 0x80中断。说明是通过sysen原创 2014-05-24 20:59:36 · 1162 阅读 · 0 评论 -
调试linux内核环境搭建方法(ddd+busybox+qemu+linux3.5.4内核)
调试linux内核环境搭建方法(ddd+busybox+qemu+linux3.5.4内核)准备工作(1).qemu虚拟机(2).busybox软件(3).linux-3.5.4内核(4).ddd 调试工具。。。。。。。。。。。。。。。。。。在qemu虚拟机终端中输入test_fork命令,这样内核就会在do_fork函数处中断了。你就可以对这个函数各种调试了。。原创 2014-05-24 20:57:59 · 1804 阅读 · 1 评论 -
fork函数在内核态的追踪
(1)在虚拟机中执行应用程序(2)程序调用libc里的封装例程 , 封装例程syscall调用,向内核发送系统调用号。具体分析发现。syscall会通过调用__kernel_vsyscall函数发送系统调用号。(3)__kernel_vsyscall函数执行sysenter快速系统调用,由用户态进入内核态。(4)sysenter进入内核态时,会先找到执行系统调用的入口函数ia32_sysenter_target。(5)执行到sysenter_do_call函数处,通过call *sys_call_原创 2014-05-24 21:26:29 · 1498 阅读 · 0 评论