【Bugs系列】SIGILL(Illegal instruction)剖析

Date: 2019-4-15


前言

    最近在ARM板子上运行一个demo可执行文件时,出现了Illegal instruction的错误。一脸懵逼,不知道什么原因造成的,分析如下。

1、参考

https://blog.csdn.net/stpeace/article/details/73321242#commentsedit
https://blog.51cto.com/eminzhang/1629684
https://www.cnblogs.com/yutongqing/p/6823385.html

2、问题描述

Illegal instruction

3、原因分析

illegal instruction,即SIGILL, 是POSIX标准中提供的一类错误。 从名字上看,SIGILL是启动的某个进程中的某一句不能被CPU识别成正确的指令。 此类错误是由操作系统发送给进程的,在进程试图执行一些形式错误、未知或者特权指令时操作系统会使用SIGILL信号终止程序。 SIGILL对应的常数是4。

3.1 将不正确的数据写入代码段

进程在代码段中的数据是要被作为一个指令执行的。 若不小心覆盖了已有的代码段,可能会得到错误格式的指令。 这种错误

你可能感兴趣的:(【Bugfix,Tips】)