Регистрация значений указателя в собственном коде Android - PullRequest
0 голосов
/ 11 декабря 2010

Я разрабатываю приложение для Android с собственным кодом.

Я не знаю, как отлаживать разделяемую библиотеку, поэтому я решил записывать значения из указателя на LogCat.

У меня есть этот код C ++:

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 равно 2472 элементам.

Я получаю что-то подобное в LogCat:

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

Я потерял 310 элементов.

Есть ли другой способ увидеть все элементы указателя?

Спасибо.

1 Ответ

2 голосов
/ 17 декабря 2010

Реализация журнала Android использует кольцевой буфер размером 64 КБ в ядре. Если вам удастся записать данные в журнал быстрее, чем «logcat» сможет их прочитать, вы начнете терять строки. Так как logcat должен ждать на adb, чтобы отправить вывод через USB на вашу рабочую станцию, его не так сложно обойти.

Используйте fopen, чтобы создать файл с именем /sdcard/debug.txt, измените __android_log_print () на fprintf (), а затем «adb pull» отключит вывод после завершения выполнения. Это гарантирует, что ничего не упадет.

...