android - 在代码中的随机点 (NDK) 中收到 SIGILL

标签 android android-ndk

我已经得到了答案,所以我只是发布这个,以防其他像我一样糟糕的编码员遇到这个问题。 (不过,有些人可能能够解释一些黑魔法)。

我正在 Android 设备(三星 Galaxy S7,尽管该问题很可能在其他设备中重现)中调试 native 代码,代码将在随机位置停止并出现 SIGILL。

最佳答案

当一个函数被声明返回某个值但它实际上没有在其实现中时,就会出现问题,例如:

int myfunc() {
    someObject.performVeryImportantTask();
    // no return value! :(
}

我现在开始欣赏 -Werror 的值(value)(我想责怪 clang,但我比这更清楚)。让我困惑的是为什么它会在代码中的随机点抛出一个SIGILL。我最好的猜测是,在某些时候缺少返回值会扰乱代码并生成跳转到无效地址的跳转,但如果有人可以进一步启发我,请成为我的客人。

关于android - 在代码中的随机点 (NDK) 中收到 SIGILL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47571955/

相关文章:

java - 跳过了 46 帧!应用程序可能在其主线程上做了太多工作

android - 制作一个 Android Studio JNI 静态库以供 JNI 读取

Android:如何在sqlite数据库中搜索数据并将其显示在 ListView 中

Android Firebase,获取节点中键的位置

android - 在 2 部 Android 手机之间打开套接字

android - 线程函数中的c++参数更改

android - 是否可以在 Android 上访问扬声器信号?

android-ndk - glMapBufferOES 使用 ndk 6 编译但不使用 7

android - 在 Android 2.3.3 上使用 OpenCv 的 native 代码时引发 UnsatisfiedLinkError

java - 错误 :null value in entry: streamOutputFolder=null