pt_regs结构
来源:互联网 发布:赌神2016网络电影 编辑:程序博客网 时间:2024/06/08 00:32
struct pt_regs {
long ebx; //可执行文件路径的指针(regs.ebx中
long ecx; //命令行参数的指针(regs.ecx中)
long edx; //环境变量的指针(regs.edx中)。
long esi;
long edi;
long ebp;
long eax;
int xds;
int xes;
long orig_eax;
long eip;
int xcs;
long eflags;
long esp;
int xss;
};
该 参数描述了在执行该系统调用时,用户态下的CPU寄存器在核心态的栈中的保存情况。通过这个参数,sys_execve能获得保存在用户空间的以下信息: 可执行文件路径的指针(regs.ebx中)、命令行参数的指针(regs.ecx中)和环境变量的指针(regs.edx中)。
/* this struct defines the way the registers are stored on the
long ebx; //可执行文件路径的指针(regs.ebx中
long ecx; //命令行参数的指针(regs.ecx中)
long edx; //环境变量的指针(regs.edx中)。
long esi;
long edi;
long ebp;
long eax;
int xds;
int xes;
long orig_eax;
long eip;
int xcs;
long eflags;
long esp;
int xss;
};
该 参数描述了在执行该系统调用时,用户态下的CPU寄存器在核心态的栈中的保存情况。通过这个参数,sys_execve能获得保存在用户空间的以下信息: 可执行文件路径的指针(regs.ebx中)、命令行参数的指针(regs.ecx中)和环境变量的指针(regs.edx中)。
/* this struct defines the way the registers are stored on the
24 stack during a system call. */
25
26 struct pt_regs {
27 long ebx;
28 long ecx;
29 long edx;
30 long esi;
31 long edi;
32 long ebp;
33 long eax;
34 int xds;
35 int xes;
36 long orig_eax;
37 long eip;
38 int xcs;
39 long eflags;
40 long esp;
41 int xss;
42 };
《understanding the linux kernel》中说 struct pt_regs中前9个是存放通过SAVE_ALL压入的寄存器值。 orig_eax存放的是IRQ number. 后面的几个是处理器自动压入的寄存器值。
我不明白的是: xds xes xcs xss等是什么寄存器? 他们与edx ecs 等有什么区别? 而且类型还不一样。
哪位能解释一下。
答:是段寄存器,类型其实是一样的
保存断点现场:在内核栈中保存中断处理程序将要用到的所有cpu寄存器的内容叫保护断点现场。这时调用宏SAVE_ALL来完成的。
#define SAVE_ALL
cld;
pushl %es;
pushl %ds;
pushl %eax;
pushl %ebp;
pushl %edi;
pushl %esi;
pushl %edx;
pushl %ecx;
pushl %ebx;
movl $(__KERNEL_DS),%edx;
movl %dx,%ds;
movl %dx,%es;
注意到这个宏没有保存EFLAGS,CS,EIP,SS和ESP寄存器,原因是这些寄存器在CPU响应中断是已被cpu自动保存了。在宏的最后,把内核数据段的选择符装入ds和es段寄存器
0
上一篇:copy_to_user和copy_from_user两个函数的分析
下一篇:Linux VFS中write系统调用实现原理
相关热门文章
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- Linux里如何查找文件内容...
给主人留下些什么吧!~~
评论热议
阅读全文
0 0
- pt_regs结构
- 获取pt_regs结构的宏
- 获取pt_regs结构的宏
- 笔记----Linux中pt_regs结构体
- struct pt_regs 中存的内容
- struct pt_regs 中存的内容
- 求大佬解释下ptrace的pt_regs的定义,而且分为i386 arm x86和aarch64的不同分支
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- 结构
- linux下静态库和动态库的区别
- 使用智能指针的注意事项
- 开源框架合集
- LINUX C中用define定义可变参数的宏
- copy_to_user和copy_from_user两个函数的分析
- pt_regs结构
- Linux VFS中write系统调用实现原理
- php过滤特殊字符
- wait_event_interruptible_out的返回值
- task _struct注释
- C语言的5种存储类以及关键字volatile、restrict
- LINUX多路复用select,poll,epoll
- elf文件格式与动态链接库(非常之好)-----不可不看
- I/O复用
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
加时赛
篮球加时赛规则
加时赛多长时间
加时赛多久
足球加时赛规则
足球加时赛多长时间
篮球加时赛算全场吗
俄罗斯世界杯首场加时赛
加木斯快乐舞步第五套
机油混加
汽车机油可以加摩托车吗
机油可以混加吗
机油加多少合适
机油加多少合适图解
机油加多了
汽车加机油口示意图
小车机油可以加摩托车吗
摩托车加汽车机油
q5加多少机油
空压机加什么机油
汽车加什么机油好
大众途观加什么机油
汽车机油加多了有什么影响
机油混加了有什么后果
机油加多了一厘米好吗
机油加多了有什么影响
加德士机油排名第几
机油怎么加
机油可以自己加吗
如何加机油
怎么加机油
汽车机油怎么加
汽车加机油
更换机油步骤
机油怎么换
自己换机油
自己怎么换机油
汽车更换机油
矿物机油和合成机油
pennzoil机油
纯合成机油