我正在使用 NDK 和 GCC 将一些 C++ 代码移植到 Android。代码基本上运行。在某一时刻,在 Eclipse 中调试时,调用
Dabbler::Android::Factory* pFactory = new Dabbler::Android::Factory;
导致此错误:
Thread [1] (Suspended: Signal 'SIGILL' received. Description: Illegal instruction.)
1 <symbol is not available> 0x812feb44
这意味着什么?编译器是否出于某种原因生成了非法代码?我在构造函数中有一个断点(它什么都不做),它没有被命中。我已经完成了完整的重建。
我可能做错了什么导致这个问题?
原文由 Dabbler 发布,翻译遵循 CC BY-SA 4.0 许可协议
LeetCode 的在线编译器和开发环境生成
SIGILL
错误,这些错误在我的桌面 IDE 中不会产生相同的错误。例如,具有越界索引的数组访问:
LeetCode 的编译器只显示错误:
在本地 Xcode 游乐场中,相同 的代码会导致错误:
只有在完整的 Xcode 项目编译和运行中才会报告实际错误: