linux-0.11调试教程,task3(02)系统调用sys_alarm和sigaction结构
来源:互联网 发布:js获取标签是否隐藏 编辑:程序博客网 时间:2024/05/15 14:52
系统调用sys_alarm相关代码:
int sys_alarm(long seconds)
{
int old = current->alarm;
if (old)
old = (old - jiffies) / HZ;
current->alarm = (seconds>0)?(jiffies+HZ*seconds):0;
return (old);
}
current->alarm的值为jiffies的值加上用户程序设置的秒数×HZ既秒数×100。
update里面设置的秒数是$0x1e既30。
27: 6a 1e push $0x1e
29: e8 5a 00 00 00 call 88 <_alarm>
下面的是系统调用sys_alarm之后的任务数据结构中的alarm的值,alarm的值为0xbec既3052
下面的是系统调用sys_alarm之前的情况。
0x7288既sys_alarm函数地址,在此下断点后,0x1819c是jiffies的地址,值为0x34既52加3000正好是3052。
#define SIGALRM 14
上图从第二行开始是任务数据结构的sigaction[]数组,最后一行是task_struct->sigaction[13]
struct sigaction {
void (*sa_handler)(int); 0x18
sigset_t sa_mask;
int sa_flags; 0xc0000000
void (*sa_restorer)(void); 0x170
};
下面的sigalrm函数就是用户自定义的信号处理函数,地址是0x18。
- linux-0.11调试教程,task3(02)系统调用sys_alarm和sigaction结构
- linux-0.11调试教程,task3(04),sa_restore函数
- linux-0.11调试教程,task3(01),/etc/rc文件
- linux-0.11调试教程,task3(03),do_signale之后的用户栈
- linux-0.11调试教程,系统调用sys_write的调用过程
- Linux 系统调用 sigaction 的用法
- linux0.11调试教程,task3概述
- linux sigaction结构分析
- struct sigaction 结构解析 和linux信号类型解释
- struct sigaction 结构解析 和linux信号类型解释
- struct sigaction 结构解析 和linux信号类型解释
- Linux信号,signal和sigaction(一)
- linux-0.11调试教程,退格键的调用过程(2)
- linux-0.11调试教程,rl_get_previous_history 调用过程
- linux-0.11调试教程,sh调用顺序
- linux-0.11调试教程,load_history ()调用过程
- linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction
- linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction
- 中级软件设计师备考
- 六种方式实现hibernate查询,及IDE推荐
- 如何用dot net连接MySQL,及中文乱码问题解决
- 使codeigniter支持$_GET
- Eclipse启动时发生An internal error occurred during: "Initializing Java Tooling".错误的解决方法
- linux-0.11调试教程,task3(02)系统调用sys_alarm和sigaction结构
- Unity3d 小知识整理(持续更新)
- aix6.1 搭建gcc环境
- C#中使用DirectSound录音
- 写给毕业生
- 关于403异常的信息
- JS 元素位置 取得位置
- 利用ffmpeg和SDL实现一个跨android版本的音视频播放器
- hdu1003求最大子序列