2010-12-11 4 views
0

원시 코드로 Android 애플리케이션을 개발 중입니다.Android 기본 코드에 포인터 값 기록

공유 라이브러리를 디버깅하는 방법을 모르므로 LogCat에 대한 포인터 값을 기록하기로 결정했습니다.

extern GLfloat* vertPos; 

// More code here: 
... 

int i = 0; 
for(i = 0; i < numVertices; i++) 
{ 
     __android_log_print(ANDROID_LOG_VERBOSE, "initRendering-Vertices", "%d, %f", i, vertPos[i]); 
} 

numVertices가 2,472 요소 같다 :

는 I ++ 코드는 C이있다.

나는 로그 캣에서 그런 일을 받고 있어요 :

12-11 08:17:35.354: VERBOSE/initRendering-Vertices(900): i = 614, value = 3.246999 
12-11 08:17:35.354: VERBOSE/initRendering-Vertices(900): i = 924, value = -8.000200 

I (310 개) 요소를 잃었습니다.

포인터의 모든 요소를 ​​볼 수있는 다른 방법이 있습니까?

감사합니다.

+0

어떻게 가능합니까? stdout을 logcat 출력에 결합하고 그 거대한 로그를 stdout에 직접 인쇄 해보십시오. – ognian

+0

저는 Android 개발에서 매우 새로운 기능이므로 그 방법을 모르겠습니다. – VansFannel

+1

http://developer.android.com/guide/developing/tools/adb.html#stdout – ognian

답변

2

Android 로그 구현은 커널에서 64KB 순환 버퍼를 사용합니다. "logcat"이 읽을 수있는 것보다 빠르게 로그에 데이터를 쓰는 경우 줄을 잃어 버리게됩니다. logcat은 USB를 통해 워크 스테이션에 출력을 보내려면 adb를 기다려야하기 때문에이를 초과하는 것은 어렵지 않습니다.

fopen을 사용하여 /sdcard/debug.txt라는 파일을 만들고 __android_log_print()를 fprintf()로 변경 한 다음 실행 완료 후 출력을 "adb pull"합니다. 그러면 아무 것도 떨어지지 않습니다.