Профилирование на Android с опцией pg

Я использую последнюю версию NDK android-ndk-r8b
У меня есть некоторые файлы, которые были созданы с помощью Android-компилятора из NDK. i686-android-linux-gcc
И теперь я хочу профилировать эти файлы.
Я попытался перестроить его с опцией -pg , но я получил ошибку:

 /tmp/ccixJFcx.o: In function `main': test1.C:(.text+0x17): undefined reference to `mcount' collect2: ld returned 1 exit status 

Я хочу попробовать использовать i686-android-linux-gprof но без компиляции с опцией -pg я не могу этого сделать.

Например, пусть источниками test1.C являются:

 int main() { return 0; } 

Я могу скомпилировать файл с помощью стандартного gcc используя следующие параметры:
-g -O2 -m32 -Wa,--32 -Wl,-melf_i386 -pg И использовать этот файл с i686-android-linux-gprof

Но я не могу использовать pg ключ с i686-android-linux-gcc , знает ли кто-нибудь почему? И как я могу его использовать, возможно, я должен использовать некоторые дополнительные библиотеки / варианты компиляции в процессе восстановления NDK?

Вы должны добавить некоторые изменения в свой Android.mk:

 #include android-ndk-profiler.mk LOCAL_CFLAGS := -pg LOCAL_STATIC_LIBRARIES := andprof LOCAL_LDLIBS += -llog 

Дополнительную информацию можно найти на странице http://code.google.com/p/android-ndk-profiler/wiki/Usage .

PS Кажется, что x86 runtime просто не содержит mcount . Определите это в другом месте вашего кода:

 #if !( defined(_M_ARM) || defined(__arm__) ) int mcount = 0; #endif 

Похоже, нет функции mcount .
Я загрузил Android Sources, нет функции mcount , только 1 вызов из нее, поэтому я думаю, что она обеспечивает эту ошибку.

Я нашел ту же проблему при проблемах с Android .