

键盘产生:
ctrl c:SIGINT 2号信号, 终止前台进程
ctrl :SIGQUIT 3号信号, 也是终止前台进程, 不过其action是core,有核心转储功能
指令
kill -9 pid :向指定进程发送9号信号
由于9号信号不可被用户自定义捕捉, 即kill -9 pid一定可以成功终止指定进程, 所以常用9号信号终止进程
系统调用
kill, raise, alarm, abort均为可发送信号的系统调用接口

异常
如代码中出现野指针, 除零等操作,
除零
若用户用signal函数自定义捕捉SIGFPE(11号, 浮点数错误,如除0)且自定义handler函数中没有退出exit,此进程会死循环(循环接收该信号,进入handler)
原因:CPU运算出错后Eflags(溢出标志位)置为1,且cpu数据随进程。每次调度该进程都保持Eflags=1,发送11信号,进入handler,不断循环

野指针
野指针也类似
MMU:memory manager unit
CR3:CR3 寄存器用于存储 页目录基址寄存器(Page Directory Base Register,PDBR)的值,它指向当前进程的页目录表(Page Directory)或页全局目录表(PGD)的位置,是进行 虚拟内存到物理内存的映射 过程中的关键寄存器。
EIP:在 x86 架构中,EIP(Extended Instruction Pointer)是一个关键的寄存器,它用于存储 CPU 当前正在执行的 指令地址,即 指令指针。它是一个 32 位寄存器(在 x86 体系结构中),用于跟踪程序执行的进度。
EIP中出现0指针/野指针时,由于无权访问就会报错(发信号),同上SIGFPE,每次调度该进程都会向进程发送信号,不断循环。



core & term是什么
是不同信号有着不同退出模式(指令:man 7 signal)

term:进程正常退出
core(核心转储):在term基础上生成一个core.pid文件(pid为进程实际pid)
core功能有什么作用
便于事后调试
gbd中输入指令 core-file core即可直接查看进程退出原因,便于快速发现错误。
如何从status中获取core dump & SIG值
为什么云服务器默认关闭core功能?
云服务器会循环重启退出的进程, 这会导致core文件大量堆积,直到云服务器崩溃。
有的云服务器会去掉core的pid后缀, 也可解决这个问题,但大多数云服务器选择直接关闭自动生成core文件的功能
如何生成core文件
产生core文件两个条件:
- 退出信号动作为core
- 服务器开启core功能

如何服务器开启core功能:
使用ulimit -a 查看core是否开启, ulimit -c 10240 开启core功能(即将core-file-size从0改为10240)

core dump标志
core dump在status的第八位

coredump可用于判断子进程是否生成core文件



到此这篇sigmoid函数输出范围(sigmoid函数的表达式及其特点)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/14960.html