signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0x12a......?

在 apk 里,如下代码小概率会 core,堆栈分析 core 到"g_is_test = false"这里了,但是这里会有什么非法指令操作呢?

//a.cpp
bool g_is_test = false;  //全局变量
void set_is_valid() {
    if (g_is_test) {
        g_is_test = true;
    }
    if (g_is_test == false) {
        //.....
    }
    
}

int set_is_test() {
    g_is_test = false;  //core 在这里了
}

// b.cpp
set_is_valid();
set_is_test();
阅读 2.8k
1 个回答

如果你的代码是 C++ 的化,基本不可能崩在这里,所以你的代码会崩在这里,大概率是因为其它原因导致的,譬如说堆栈溢出破坏了返回地址,导致代码执行到了这里。所以你可以考虑在这里前后加入点废代码,然后看看是不是固定崩在这一行,如果不是,就应该是其它地方导致的问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题