
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 · 1195 阅读 · 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 · 1878 阅读 · 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 · 1561 阅读 · 0 评论