Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在代码中随机点接收信号(NDK)_Android_Android Ndk - Fatal编程技术网

Android 在代码中随机点接收信号(NDK)

Android 在代码中随机点接收信号(NDK),android,android-ndk,Android,Android Ndk,我已经得到了答案,所以我只是发布这个,以防任何其他像我这样糟糕的程序员遇到这个问题。(不过,有人可能会解释一些黑魔法) 我正在调试Android设备(三星Galaxy S7,尽管该问题很可能会在其他设备上重现)中的本机代码,并且代码将在随机位置停止,并带有SIGILL。当一个函数被声明返回一些值,但实际上在其实现中没有返回值时,问题就会出现,例如: int myfunc() { someObject.performVeryImportantTask(); // no return

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


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

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

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

我现在开始意识到-Werror的价值(我很想责怪clang,但我更清楚这一点)。让我困惑的是,为什么它会在代码中的随机点上抛出一个SIGILL。我的最佳猜测是,在某一点上缺少返回值会扰乱代码,并生成一个跳转到无效地址,但如果有人能进一步告诉我,请做我的客人。

我建议将
-Werror-Wall
添加到您的cflags中-Wreturn类型将为您捕捉这些错误。