【问题标题】:SEGILL android ndk codeSEGILL安卓ndk代码
【发布时间】:2018-04-08 13:07:51
【问题描述】:

我开发了一个库,我在 x86-64 位机器上进行了测试,它可以正常工作并成功通过测试。当我把它放在我的 android 应用程序中时,代码在一个构造函数中停止,该构造函数只是将其所有变量初始化为其默认值(指针被分配给 null,布尔值被分配给 false ......)。我已经为 x86-64 位设置了目标,所以我确信部署不同的架构不是问题。我怎样才能找出问题的根源,因为如果我在构造函数中注释掉初始化,它会在再次给出 SEGILL 错误之前执行大量代码?我在模拟器中使用 android 8 x64 位英特尔图像。此外,log cat 没有显示任何内容,唯一的错误是 SEGILL。

似乎大多数时候,做一些指针操作会导致问题。简单地用 null 或 new 初始化指针会导致应用崩溃。

【问题讨论】:

标签: android-ndk


【解决方案1】:

我没有启用 SSE,而是启用了 android 不支持的 avx,因此 clang 使用 avx 优化了一些部分,导致 SIGILL。

【讨论】:

    猜你喜欢
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 2012-09-30
    相关资源
    最近更新 更多