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();


回答:

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

以上是 signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0x12a......? 的全部内容, 来源链接: utcz.com/p/944926.html

回到顶部