Programação com OpenGL/Instalação/Android NDK: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Linha 135:
 
== GDB ==
 
O GDB pode ser usado também
 
Nota: no NDKr7, existe algumas questões a serem resolvidas para ele funcionar:
* Veja abaixo se você usa o Cyanogen 7.1 para corrigir o 'run-as'
* Usando o formato "stabs" para depurar os símbolos no Android.mk, senão o GDB pode mostrar as linhas de códigos errada <ref>http://groups.google.com/group/android-ndk/browse_thread/ebd969a055af3196</ref>:
<source lang="make">
LOCAL_CXXFLAGS := -gstabs+
</source>
 
GDB precisa da depuração do compilador, coloque um NDK_DEBUG=1 enquanto compila seu código C++:
<source lang="bash">
ndk-build NDK_DEBUG=1
</source>
 
Enquanto inicia o gdb, veja se seu AndroidManifest.xml menciona um depurador, se não o gdb se comportará mal (com falhas nas informações do thread, crash e etc...):
<source lang="xml">
<application ...
android:hasCode="true" android:debuggable="true"
</source>
 
O <code>gdb-server</code> precisa de alguns segundos para iniciar no seu dispositivo, assim que seu programa iniciar ele possa de ser pausado pelo depurador. você precisar colocar em sua função <code>android_main</code>:
<source lang="cpp">
sleep(5);
</source>
 
Para iniciar a sessão do depurador, digite:
ndk-gdb --start
 
=== Correção no Cyanogen 2.3 ===
 
o ndk-gdb depende do comando <code>run-as</code>, que faz uma série de verificações na pasta /data/data
No Cyanogen 2.3, é um link simbólico, e falha com uma mensagem estranha, e o ndk-gdb falha retornado com <ref>http://forum.cyanogenmod.com/topic/27657-run-as-not-working-due-to-datadata-symlink/</ref>:
ERROR: Could not extract package's data directory. Are you sure that
your installed application is debuggable?
 
Então trabalhe em cima para recriar o /data/data com link simbólico :
mv /data/data /datadata.break-run-as
mkdir -m 771 /data/data/
chown system: v
mv /datadata/* /data/data/