3
Android NDK에서 사용하는 라이브러리의 C 코드에 문제가 있습니다.Android NDK C 라이브러리로 인해 seg 오류가 발생합니다.
에뮬레이터에서는 작동하지만 실제 장치에서는 작동하지 않습니다. 그것은 "libc - Fatal signal 11"(SIGSEGV)
라이브러리의 코드 조각으로 문제를 추적했지만 두 번째 줄의 내용을 이해하는 데 문제가 있습니다.
int lookup_mpz(mpz_t z, const char *(*tab)(const char *), const char *key) {
const char *data= tab(key); //--> Causes SEGV
if (!data) {
pbc_error("missing param: `%s'", key);
return 1;
}
mpz_set_str(z, tab(key), 0);
return 0;
}
'tab '도 포인터로 검사하지 않는 이유는 무엇입니까? 나는'tab'에 NULL이 전달되었을 때'lookup_mpz'가 아닌 SIGSEGV가 구현 될 것이라고 생각합니다. –
@AndreyErmakov, 좋은 지적입니다. 업데이트 됨. – hmjd
감사합니다. 나는 그 기능 탭()을 어디서나 발견 할 수 없다. 그것은 문제 일 것이다. 그러나 그것은 여전히 코드가 에뮬레이터에서 작동하지만 실제 장치에서는 작동하지 않는 이유를 설명하지 못합니다. – Phaestion