pyqt5 发送键盘信号_Linux下异常信号——Signal

本文介绍了Linux平台下的Signal,包括信号的来源、分类及常见信号的含义。通过理解Signal,可以更好地分析软件异常日志,识别如SIGHUP、SIGINT、SIGTERM等关键信号,对于PyQT5测试中如何处理键盘信号也有指导意义。
摘要由CSDN通过智能技术生成

近期接触了Linux平台的测试,遇到了软件发生异常,从而接触到了 Linux平台下的Signal——信号,用来通知进程发生了异步事件。

作为测试,免不了需要初步判断一下是否是正在的异常,因此学习了一下Signal

NO

1

信号事件的发生有两个来源:

硬件来源(比如我们按下了键盘或者其它硬件故障);

软件来源,最常用发送信号的系统函数是kill, raise, alarm和setitimer以及sigqueue函数,软件来源还包括一些非法运算等操作。

按发出信号的原因简单分类,如下:

(1)   与进程终止相关的信号。

当进程退出,或者子进程终止时,发出这类信号。

(2)   与进程例外事件相关的信号。

如进程越界,或企图写一个只读的内存区域(如程序正文区),或执行一个特权指令及其他各种硬件错误。

(3)   与在系统调用期间遇到不可恢复条件相关的信号。

如执行系统调用exec时,原有资源已经释放,而目前系统资源又已经耗尽。

(4)   与执行系统调用时遇到非预测错误条件相关的信号。

如执行一个并不存在的系统调用。

(5)   在用户态下的进程发出的信号。

如进程调用系统调用kill向其他进程发送信号。

(6)   与终端交互相关的信号。

如用户关闭一个终端,或按下break键等情况。

(7) 跟踪进程执行的信号。

NO

2

Linux支持的信号列表如下(很多信号是与机器的体系结构相关的)

信号值    默认处理动作    发出信号的原因    

SIGHUP 1    A    终端挂起或者控制进程终止    

SIGINT 2    A    键盘中断(如break键被按下)    

SIGQUIT 3    C    键盘的退出键被按下    

SIGILL 4    C    非法指令    

SIGABRT 6    C    由abort(3)发出的退出指令    

SIGFPE 8    C    浮点异常    

SIGKILL 9    AEF    Kill信号    

SIGSEGV 11    C    无效的内存引用    

SIGPIPE 13    A    管道破裂:写一个没有读端口的管道    

SIGALRM 14    A    由alarm(2)发出的信号    

SIGTERM 15    A    终止信号    

处理动作一项中的字母含义如下

A 缺省的动作是终止进程

C 缺省的动作是终止进程并进行内核映像转储(dump core),内核映像转储是指将进程数据在内存的映像和进程在内核结构中的部分内容以一定格式转储到文件系统,并且进程退出执行,这样做的好处是为程序员提供了方便,使得他们可以得到进程当时执行时的数据值,允许他们确定转储的原因,并且可以调试他们的程序。

E 信号不能被捕获

F 信号不能被忽略

了解了以上信息后,再来看软件生成异常的log文件,其他的信息可以暂时不关注,将log信息中的Signal字段找出来,解读后面的数值

未了解之前:

跟开发了解了软件在出现异常时会写log,因此实时关注log的情况,生成log后就给开发提交bug

了解之后:

在生成的log中,很多的信号都是因一些操作产生的,如

1和15,在注销系统后就会产生;

9,测试的操作中经常会有kill进程的操作,log中的这些信号可以直接忽略

11是经常出现且需要重点关注的信号,遇到这个数字千万要放过

6和14,遇到这个信号也千万不要忽略,需要找开发进行分析讨论的哟,它可能是问题,当然,也可能不是问题

其他的信号,目前位置没有遇到过

以上简单分享了Linux下的Signal的含义,以及一些常用的信号值,后续还会继续有分享哟

eb1f6190b30b4a433ab9d45b16d4c6cb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值