是什么导致信号"SIGILL"? [英] What causes signal 'SIGILL'?

查看:1801
本文介绍了是什么导致信号"SIGILL"?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用NDK和GCC将一些C ++代码移植到Android.该代码基本上可以运行.有一次,在Eclipse中调试时,调用

I'm porting some C++ code to Android using NDK and GCC. The code basically runs. At one point, when debugging in Eclipse, the call

Dabbler::Android::Factory* pFactory = new Dabbler::Android::Factory;

导致此错误:

Thread [1] (Suspended: Signal 'SIGILL' received. Description: Illegal instruction.) 
    1 <symbol is not available> 0x812feb44

那是什么意思?编译器是否由于某种原因生成了非法代码?我在构造函数中有一个断点(不执行任何操作),并且没有命中.我已经完成了一次完整的重建.

What does that mean? Has the compiler generated illegal code for some reason? I have a breakpoint in the constructor (which does nothing), and it's not hit. I have already done a full rebuild.

我怎么做会导致这个问题?

What could I be doing wrong to cause this problem?

推荐答案

这意味着CPU试图执行它不理解的指令.我猜这可能是由损坏引起的,或者它是为错误的体系结构编译的(在这种情况下,我本以为操作系统会拒绝运行可执行文件).不能完全确定根本问题是什么.

It means the CPU attempted to execute an instruction it didn't understand. This could be caused by corruption I guess, or maybe it's been compiled for the wrong architecture (in which case I would have thought the O/S would refuse to run the executable). Not entirely sure what the root issue is.

这篇关于是什么导致信号"SIGILL"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆