我的android应用当前处于测试阶段,我通过crashlytics收到崩溃报告。 今天早上,我在for循环上收到了SIGSEGV SEGV_MAPERR,如下所示。
...
int buf_size = buffer->buffer_size;
float* l_ch = buffer->left_channel;
float* r_ch = buffer->right_channel;
float avg_ch[buf_size];
for(int i = 0; i < buf_size; ++i){ CRASH HERE!!!!!!
avg_ch[i] = (l_ch[i] + r_ch[i]) / 2.0f;
}
...
这对我来说很奇怪,因为崩溃似乎是由于for循环中的条件所致,而不是访问语句中的缓冲区。然而,这种情况绝不会导致分割错误。我可以肯定,自从我上次crashlytics更新以来,此类并未更改,因此它应该报告正确的行号。
我只是好奇是否有人遇到过类似的情况以及可能的原因。或者,可能是在不正确的位置报告了此崩溃事件,并且这个问题毫无意义。
谢谢