Android NDK (Windows XP, Cygwin에서)를 사용하여 원시 코드에 대해 Eclipse에서 디버깅을 설정하고 자바와 네이티브 코드 모두에서 중단 점을 설정할 수 있으며 디버거가 올바르게 중단됩니다. 내 문제는 네이티브 코드를 단계별로 실행할 때 종종 중단 점을 지나칠 때 발생하지 않는 세그멘테이션 오류/SIGILL이 발생한다는 것입니다. AndroidManifest.xml에에 정의 된Eclipse에서 Android NDK 디버깅 - 원시 코드를 실행할 때만 발생하는 segfaults/SIGILL을 중지하는 방법
- 내 응용 프로그램 디버깅입니다
APP_OPTIM
디버그로 정의 할 때 내가 디버그 기호를 제거에서 그것을 방지하기 위해 (NDK) /build/core/build-binary.mk을 변경 한
개별적으로
나는이 문제 읽었습니다 그것은 내가 Android.mk 파일에 LOCAL_CFLAGS := -g -O0
을 정의
-O0
으로 최적화를 해제해도 내 문제에는 영향을주지 않습니다. 빌드 할 때 NDK_BUILD=1
플래그를 사용하여 건너 왔지만, AndroidManifest.xml에서 debuggable=true
을 정의하는 것은 분명히 동일한 효과가 있습니다. 나는 에뮬레이터 (2.3.3 실행)와 장치 (2.2 실행 - 당연히 예상했던 스레드 문제가 없었 음)에서 이와 비슷한 결과를 얻었습니다. (정확하게 기억한다면 코드의 다른 지점에서 오류가 발생했습니다).
누구나 시도 할 수있는 가능한 수정/단계에 대한 통찰력이 있습니까? 그리고/또는 문제없이 원시 코드를 성공적으로 실행할 수 있습니까?
정말 감사합니다
편집 :이 정말 해결되지 않았다,하지만 NDK 디버깅을 위해 나의 가이드를 살펴 원하는 사람을 위해, 당신이 그것을 here을 찾을 수 있습니다.
편집 2 : 편집이 질문에 대한 답변은 NDK의 새 버전이 나오면 나왔습니다.이 질문은 현재 중복 될 수 있습니다. 내 가이드는 여전히 작동 할 수 있지만 잠시 동안 NDK를 사용하지 않아서 계속해서 정확성을 보장 할 수는 없습니다. 세 사람 모두 기본적으로 똑같은 말을했기 때문에 나는 대답을 받아 들였습니다. 그리고 그것은 처음 제출 된 것입니다.
안녕하세요. 네이티브 디버깅이 올바르게 작동하도록 할 수 있었습니까? 웬일인지 나는 네이티브 함수 (F5)에 들어갈 수 없다. –
@Kevin 안녕하세요. 내가 링크 된 가이드는 NDK 디버깅을 작동 상태로 설정합니다.그러나 말했듯이, JNI를 "통해"스테핑을 처리하지 않습니다. 그러나 Java와 C/C++에서 설정된 중단 점을 처리하므로 NDK에서 호출하는 C/C++ 함수의 진입 점에 중단 점을 설정하고 원하는 중단 점에 계속 (F8) 네이티브 코드로 이동합니다. 희망이 도움이됩니다. –
고마워요! 그렇습니다. –