Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#2426 Le 08/11/2012, à 13:18

tshirtman

Re : /* Topic des codeurs [7] */

Mindiell a écrit :

@tshirtman : J'ai quelques questions rapport à Kivy :
- Est-ce python 3+ compatible ?

pas encore mais https://groups.google.com/forum/embed/? … Z_UJOoBeIc on y travaille wink

- On est d'accord qu'on peut aussi faire des programmes pour les PCs avec ?

tout à fait

- Peut-on faire du plein écran (je suppose que oui) ?

Oui smile

- Je suis sur Lucid (10.04), je n'ai donc pas accès à la lib gles2-mesa-dev, je vais quand même essayer de compiler quelque chose ou alors il faut vraiment passer à autre chose (le pb c'est que Ubuntu après, je trouve ça lourd et lent, il faudrait passer à Trisquel et/ou Debian)

Ah, ça risque d'être un peu sport, ça fait longtemps que personne à testé sur 10.04, "if ever"

Oui, je sais, RTFM. Mais je suis déjà en train de l'installer pour voir ce que ça pourrait donner et j'ai pas envie de farfouiller partout alors que tu as surement déjà les réponses wink

EDIT :
- compilation ok, utilisation ok : sans la lib gles2, ça doit servir à fairedes trucs spéciaux uniquement smile

Ah c'est cool ça! tu peut tester si les démos shaders, et showcase marchent bien? ça devrait couvrir toutes les fonctionalités…

- Je suis les tutoriels, et je n'ai pas besoin de la Factory (le tuto parle de la version 1.0.9, j'ai la 1.4.2-dev, ça a du changer...)

Oui, c'est tout récent, si une classe est définie (ou importé) avant la construction du kv, pas besoin du factory register, si elle est dans un module, et que tu veux pas importer un truc sans l'utiliser, ça peut encore servir, mais oui, c'est automatique maintenant sinon.

- Très bonne première impression : je connais les notions de widget et tout, et je joue déjà un peu avec, et ça marche comme je l'imagine : ca c'est top smile

Cool smile

Hors ligne

#2427 Le 08/11/2012, à 14:43

Mindiell

Re : /* Topic des codeurs [7] */

Bon, les tests sont ok.
Ca marche très bien : \o/

Hors ligne

#2428 Le 08/11/2012, à 16:07

tshirtman

Re : /* Topic des codeurs [7] */

pendant ce temps… tongue

Breakpoint 13, semlock_new (type=0x5b6923a8, args=0x65241eb8, kwds=0x0)
    at /home/gabriel/python-for-android/build/python/Python-2.7.2/Modules/_multiprocessing/semaphore.c:438
438	    SEM_HANDLE handle = SEM_FAILED;
(gdb) n
444	    if (!PyArg_ParseTupleAndKeywords(args, kwds, "iii", kwlist,
(gdb) 
448	    if (kind != RECURSIVE_MUTEX && kind != SEMAPHORE) {
(gdb) 
453	    PyOS_snprintf(buffer, sizeof(buffer), "/mp%ld-%d", (long)getpid(), counter++);
(gdb) 
456	    handle = SEM_CREATE(buffer, value, maxvalue);
(gdb) 
458	    if (handle == SEM_FAILED || SEM_GET_LAST_ERROR() != 0)
(gdb) p handle
$25 = (SEM_HANDLE) 0x5eab48
(gdb) p *handle
$26 = {count = 2147483646}
(gdb) p kind
$27 = 1
(gdb) p maxvalue
$28 = 1073741823
(gdb) p value
$29 = 1073741823
(gdb) p SEM_FAILED
No symbol "SEM_FAILED" in current context.
(gdb) i macro SEM_FAILED
The symbol `SEM_FAILED' has no definition as a C/C++ preprocessor macro
at <user-defined>:-1
(gdb) 
The symbol `SEM_FAILED' has no definition as a C/C++ preprocessor macro
at <user-defined>:-1
(gdb) p handle
$30 = (SEM_HANDLE) 0x5eab48
(gdb) p value
$31 = 1073741823
(gdb) p val
No symbol "val" in current context.
(gdb) p /d handle
$32 = 6204232
(gdb) p /d *handle
$33 = {count = 2147483646}
458	    if (handle == SEM_FAILED || SEM_GET_LAST_ERROR() != 0)
(gdb) p /uint value
$34 = 111111111111111111111111111111
(gdb) p /u value
$35 = 1073741823
(gdb) p /c value
$36 = -1 '\377'
(gdb) p /h value
Size letters are meaningless in "print" command.
(gdb) p /x value
$37 = 0x3fffffff
(gdb) p /uint *handle
$38 = {count = 1111111111111111111111111111110}

Les deux premiers appels à semlock_new se passent bien, mais j'ai une valeur bizarre au troisième, je pense que les soucis viennent de là…

Hors ligne

#2429 Le 08/11/2012, à 16:22

grim7reaper

Re : /* Topic des codeurs [7] */

Peut-être qu'il y a de la corruptions mémoire.
Tu peux essayer de lancer un coup de Valgrind dessus (info ici, je sais pas si ça va fonctionner dans ton cas).
Je sais qu'il passe sur archi' ARM car j'ai pas mal bossé sur ce genre de truc dans mon dernier stage (finalement, j'ai pas touché aux ordonnanceurs)). D'ailleurs faudrait que je mette à dispo un bout de mon rapport qui explique comment fonctionne Valgrind, je pense que ça peut-être intéressant smile

Dernière modification par grim7reaper (Le 08/11/2012, à 16:23)

Hors ligne

#2430 Le 08/11/2012, à 21:35

tshirtman

Re : /* Topic des codeurs [7] */

Ah cool, je vais tester ça, par ce que là je vois pas bien, il reçoit exactement la même valeur dans args les trois cas ("\001") et le deux première fois PyArg_ParseTupleAndKeywords mets 1 dans value, la troisième il mets "max - 1". j'ai pas testé plus profond depuis que j'ai trouvé ça, si besoin, valgrind devrait aider oui smile.

Hors ligne

#2431 Le 10/11/2012, à 03:25

tshirtman

Re : /* Topic des codeurs [7] */

J'avance big_smile cette plongée dans le code de python me fait apprendre pleins de trucs sur gdb, et sur le fonctionnement de Python, c'est très intéressant ^^

Remote debugging using ct07:5050
warning: Could not load shared library symbols for 72 libraries, e.g. /system/bin/linker.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
0x40057b3c in ?? ()
(gdb) i b
No breakpoints or watchpoints.
(gdb) set solib-search-path /home/gabriel/python-for-android/dist/goulbi/private/lib/python2.7/lib-dynload/:/home/gabriel/python-for-android/dist/goulbi/libs/armeabi/
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
(gdb) i b
No breakpoints or watchpoints.
(gdb) b semlock_new 
Breakpoint 2 at 0x5b783910: file /home/gabriel/python-for-android/build/python/Python-2.7.2/Modules/_multiprocessing/semaphore.c, line 438.
(gdb) c
Continuing.
[New Thread 13796]
[Switching to Thread 13796]

Breakpoint 2, semlock_new (type=0x5b7863a8, args=0x647dc698, kwds=0x0)
    at /home/gabriel/python-for-android/build/python/Python-2.7.2/Modules/_multiprocessing/semaphore.c:438
438	    SEM_HANDLE handle = SEM_FAILED;
(gdb) list
433	
434	static PyObject *
435	semlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
436	{
437	    char buffer[256];
438	    SEM_HANDLE handle = SEM_FAILED;
439	    int kind, maxvalue, value;
440	    PyObject *result;
441	    static char *kwlist[] = {"kind", "value", "maxvalue", NULL};
442	    static int counter = 0;
(gdb) n
444	    if (!PyArg_ParseTupleAndKeywords(args, kwds, "iii", kwlist,
(gdb) p args
$13 = (PyObject *) 0x647dc698
(gdb) p ((PyTupleObject *)args)->ob_item[0]
$19 = (PyObject *) 0x4abe20
(gdb) p ((PyTupleObject *)args)->ob_item[0]->ob_type->tp_name 
$21 = 0x5ba21bc8 "int"
(gdb) p ((PyIntObject*)((PyTupleObject *)args)->ob_item[0])->ob_ival 
$22 = 1
(gdb) p ((PyIntObject*)((PyTupleObject *)args)->ob_item[1])->ob_ival 
$23 = 1
(gdb) p ((PyIntObject*)((PyTupleObject *)args)->ob_item[2])->ob_ival 
$24 = 1
(gdb) disp ((PyIntObject*)((PyTupleObject *)args)->ob_item[0])->ob_ival 
2: ((PyIntObject*)((PyTupleObject *)args)->ob_item[0])->ob_ival = 1
(gdb) disp ((PyIntObject*)((PyTupleObject *)args)->ob_item[1])->ob_ival 
3: ((PyIntObject*)((PyTupleObject *)args)->ob_item[1])->ob_ival = 1
(gdb) disp ((PyIntObject*)((PyTupleObject *)args)->ob_item[2])->ob_ival 
4: ((PyIntObject*)((PyTupleObject *)args)->ob_item[2])->ob_ival = 1
(gdb) c
Continuing.

Breakpoint 2, semlock_new (type=0x5b7863a8, args=0x647dc738, kwds=0x0)
    at /home/gabriel/python-for-android/build/python/Python-2.7.2/Modules/_multiprocessing/semaphore.c:438
438	    SEM_HANDLE handle = SEM_FAILED;
4: ((PyIntObject*)((PyTupleObject *)args)->ob_item[2])->ob_ival = 1
3: ((PyIntObject*)((PyTupleObject *)args)->ob_item[1])->ob_ival = 1
2: ((PyIntObject*)((PyTupleObject *)args)->ob_item[0])->ob_ival = 1
(gdb) c
Continuing.

Breakpoint 2, semlock_new (type=0x5b7863a8, args=0x647eaeb8, kwds=0x0)
    at /home/gabriel/python-for-android/build/python/Python-2.7.2/Modules/_multiprocessing/semaphore.c:438
438	    SEM_HANDLE handle = SEM_FAILED;
4: ((PyIntObject*)((PyTupleObject *)args)->ob_item[2])->ob_ival = 2
3: ((PyIntObject*)((PyTupleObject *)args)->ob_item[1])->ob_ival = 2
2: ((PyIntObject*)((PyTupleObject *)args)->ob_item[0])->ob_ival = 1
(gdb) list
433	
434	static PyObject *
435	semlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
436	{
437	    char buffer[256];
438	    SEM_HANDLE handle = SEM_FAILED;
439	    int kind, maxvalue, value;
440	    PyObject *result;
441	    static char *kwlist[] = {"kind", "value", "maxvalue", NULL};
442	    static int counter = 0;
(gdb) n
444	    if (!PyArg_ParseTupleAndKeywords(args, kwds, "iii", kwlist,
4: ((PyIntObject*)((PyTupleObject *)args)->ob_item[2])->ob_ival = 2
3: ((PyIntObject*)((PyTupleObject *)args)->ob_item[1])->ob_ival = 2
2: ((PyIntObject*)((PyTupleObject *)args)->ob_item[0])->ob_ival = 1
(gdb) n
448	    if (kind != RECURSIVE_MUTEX && kind != SEMAPHORE) {
4: ((PyIntObject*)((PyTupleObject *)args)->ob_item[2])->ob_ival = 2
3: ((PyIntObject*)((PyTupleObject *)args)->ob_item[1])->ob_ival = 2
2: ((PyIntObject*)((PyTupleObject *)args)->ob_item[0])->ob_ival = 1
(gdb) p value
$25 = 1073741823
(gdb) p maxvalue 
$26 = 1073741823
(gdb) list
443	
444	    if (!PyArg_ParseTupleAndKeywords(args, kwds, "iii", kwlist,
445	                                     &kind, &value, &maxvalue))
446	        return NULL;
447	
448	    if (kind != RECURSIVE_MUTEX && kind != SEMAPHORE) {
449	        PyErr_SetString(PyExc_ValueError, "unrecognized kind");
450	        return NULL;
451	    }

et le mieux, c'est que si je fais tout ça sans trop perdre de temps, que je mets manuellement value et maxvalue à 2 comme demandé au troisième appel, et que je continue, mon programme ne plante pas… donc il semblerait que le soucis soit dans PyArg_ParseTupleAndKeywords (et même probablement plus précisément dans converttuple (edit ou convertsimple) dans getargs.c, mais je m'avance un peu, je n'ai pas encore vraiment étudié le code d'icelle), tout va bien quand elle est appelé avec des objects int à 1, mais pas des objets int à 2? c'est bizarre quand même…

(oui, je galérais aussi par ce que je n'avais pas trouvé quel so charger pour avoir les objects interne de python, je n'avait que le bout dans _multiprocessing)

edit: on s'approche du bingo:

(gdb) p arg
$49 = (PyObject *) 0x5fc1f5f0
(gdb) p ((PyIntObject *)arg)->ob_ival 
$50 = 2
(gdb) n
688	        ival = PyInt_AsLong(arg);
(gdb) p ival
$51 = 1
(gdb) n
689	        if (ival == -1 && PyErr_Occurred())
(gdb) p ival
$52 = 1073741823

PyInt_AsLong devrait renvoyer 2, si je dis pas de bétise, et elle renvoit le nombre problème qu'on a depuis le début…

re-edit: va falloir que quelqu'un m'explique PyInt_AsLong là par ce que je comprends pas l'intérêt de la maneuvre… oO
https://gist.github.com/4049523
re-re-edit: http://docs.python.org/2/c-api/int.html#PyInt_AsLong ah bon… hm, bon, on va dire que la nuit porte conseil ^^, j'espère que je vous embète pas trop avec mes longs posts de debug ^^

Dernière modification par tshirtman (Le 10/11/2012, à 04:10)

Hors ligne

#2432 Le 10/11/2012, à 06:05

grim7reaper

Re : /* Topic des codeurs [7] */

C’est quoi donc le problème maintenant ?
Tu fais comment pour exécuter et débugger le code ? La procédure m’intéresse smile

Hors ligne

#2433 Le 10/11/2012, à 07:42

Mindiell

Re : /* Topic des codeurs [7] */

Et t'as vérifié PyErr_Occurred() je suppose ? smile

Hors ligne

#2434 Le 10/11/2012, à 12:47

tshirtman

Re : /* Topic des codeurs [7] */

@grim: rapidement, pour la procédure, je démarre un programme sur ma tablette, qui importe multiprocessing, et crèe un processus et une queue pour communiquer avec, j'ai mis un bouton pour dire de commencer les "get" sur la queue, vu que c'est ça qui fait crasher. je lance un gdbserver :5050 --attach $pid_de_mon_process_python, sur la tablette, et ensuite, tout se passe dans la session gdb que tu vois au dessus. Je vais faire un programme minimum, vu que c'est un truc pour le boulot à la base, le programme…

@Mindiell: non, je crois pas, mais je vais ^^ merci du conseil smile

Hors ligne

#2435 Le 10/11/2012, à 13:04

grim7reaper

Re : /* Topic des codeurs [7] */

@tshirtman : ouais un programme minimal serait pas mal. Comme ça tu pourrais le poster et je pourrais l’utiliser.
Petite question, j’ai pas de matos avec Android sous là main. Tu penses qu’avec l’émulateur c’est jouable de debugger ?

Edit : à priori, oui.
Après faudra que tu m’expliques comment tu packages, envoie ça sur le bestiau puis charge les symboles de débuggage (vu qu’il semble que tu aies eu du mal avec ça au début).

Dernière modification par grim7reaper (Le 10/11/2012, à 13:05)

Hors ligne

#2436 Le 10/11/2012, à 15:48

tshirtman

Re : /* Topic des codeurs [7] */

Bon

Je viens de pusher mes changements à python-for-android (ton patch d'il y a quelques jours, plus mes divers changements pour que les libs soient avec symboles de débugs et non strippés après) sur https://github.com/tshirtman/python-for … mltprdebug si tu fetch/checkout (ou carrément clone) cette branche, tu devrais avoir les symboles pour débugger.

./distribute.sh -f -m 'kivy' -d goulbi

(edit: je viens de pousser une correction, j'avais mal checker, y'avait pas tous les symboles)

ensuite:
https://gist.github.com/4050969

premier fichier, c'est quelques fonctions que j'utilise pour builder-déployer, (autoenv c'est le bien) comme je fais ça par ssh, ça me simplifie la vie, "goulbi" c'est le nom de ma distribution python-for-android (par ce que j'expérimente dedans ^^), faut bien sur que tu adapte pour toi dans les diverses commandes, mais bon, je t'ai mis l'apk ici, t'as juste à l'installer, smile
dans toutes les commandes suivantes, "ct07" est l'ip de ma tablette carrefour, et 5050 un nombre arbitraire que j'ai choisit donc tu adapte comme tu veux/peux (je pense que tu l'aurais compris tout seul, mais bon, autant dire les choses)

Tu ouvre gdb sur ta machine

gabriel@tochange:~/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3$ ./prebuilt/linux-x86/bin/arm-linux-androideabi-gdb ~/python-for-android/dist/goulbi/private/libpymodules.so

Pour démarrer le programme, soit tu le lance directement dans l'interface android, soit tu utilise am, comme dans ma fonction "run" plus haut.

ensuite, tu lance gdb server sur la tablette, tu fais ps | grep python, et tu attache au premier pid.

gdbserver :5050 --attach $(ps | grep python | tail -n 1 | tr -s " " " "| cut -d" " -f2)

dans gdb sur ta machine

target remote ct07:5050

et là tu regarde si le message "connect now so you can create breakpoints on sem_new !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" est déjà passé dans logcat, si ce n'est pas le cas, tu fais "c" et ctrl-c quand il apparait (t'as 15 secondes), puis tu lui indique ou prendre les libs nécessaires pour débugger, j'ai pas trouvé de méthode plus simple que ça, si tu as, je suis preneur.

set solib-search-path /home/gabriel/python-for-android/dist/goulbi/private/lib/python2.7/lib-dynload/:/home/gabriel/python-for-android/dist/goulbi/libs/armeabi/

adapter les chemins bien sur.

info sharedlibrary

devrait t'indiquer que ...libs/armeabi/libpython2.7.so et ...private/lib/python2.7/lib-dynload/_multiprocessing.so sont bien chargés, tu peut alors mettre ton breakpoint sur semlock_new

b semlock_new

et continuer.

voilà, je pense qu'il y a tout ^^.

Dernière modification par tshirtman (Le 10/11/2012, à 16:16)

Hors ligne

#2437 Le 10/11/2012, à 20:44

tshirtman

Re : /* Topic des codeurs [7] */

je suis désolé, je viens de corriger pour de bon l'expression sed dans le script, j'avais pas vu que ça foirait, les symboles semblaient être là, mais on pouvait pas descendre correctement dans les fonctions python, c'était tout buggé hmm

Hors ligne

#2438 Le 10/11/2012, à 20:46

grim7reaper

Re : /* Topic des codeurs [7] */

Y’a pas de souci, j’ai encore rien fait, je m’y mettrais ce soir.
Là je cuisine ^^

Hors ligne

#2439 Le 10/11/2012, à 23:22

grim7reaper

Re : /* Topic des codeurs [7] */

Bon, j’ai l’impression que Pop ne se lance pas (on dirait qu’il crashe en moins de 2 secondes…).

Et sinon, en admettant que ça fonctionne, j’ai un petit souci pour chopper le PID de python de manière automatique :

grep: not found
tail: not found
cut: not found
tr: not found

Donc faudra que je le fasse à la main (mais comme Pop ne se lance pas, ou crash super vite, bah je peux pas).
Faudrait peut-être que le le lance via am mais je vois pas trop comment faire.

Dernière modification par grim7reaper (Le 10/11/2012, à 23:26)

Hors ligne

#2440 Le 10/11/2012, à 23:41

tshirtman

Re : /* Topic des codeurs [7] */

arf, tu peut me sortir le logcat? (soit adb logcat sur ta machine, soit la commande logcat en tant que root sur l'émulateur)

Hors ligne

#2441 Le 11/11/2012, à 00:01

grim7reaper

Re : /* Topic des codeurs [7] */

I/ActivityManager(   78): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.kivy.popmtprocess/org.renpy.android.PythonActivity} from pid 187
W/WindowManager(   78): Failure taking screenshot for (180x300) to layer 21010
I/WindowManager(   78): createSurface Window{41553768 Starting org.kivy.popmtprocess paused=false}: DRAW NOW PENDING
D/dalvikvm(  791): Not late-enabling CheckJNI (already on)
I/ActivityManager(   78): Start proc org.kivy.popmtprocess:python for activity org.kivy.popmtprocess/org.renpy.android.PythonActivity: pid=791 uid=10040 gids={1015}
I/dalvikvm(  791): Turning on JNI app bug workarounds for target SDK version 8...
D/dalvikvm(   36): GC_EXPLICIT freed 38K, 4% free 9848K/10179K, paused 3ms+5ms
W/NetworkManagementSocketTagger(   78): setKernelCountSet(10040, 1) failed with errno -2
D/dalvikvm(   78): GC_CONCURRENT freed 378K, 17% free 12084K/14471K, paused 7ms+66ms
D/dalvikvm(   36): GC_EXPLICIT freed <1K, 4% free 9848K/10179K, paused 2ms+4ms
V/PhoneStatusBar(  131): setLightsOn(true)
D/dalvikvm(   36): GC_EXPLICIT freed <1K, 4% free 9848K/10179K, paused 3ms+4ms
V/python  (  791): Extracting private assets.
D/dalvikvm(  791): GC_FOR_ALLOC freed 74K, 3% free 9895K/10179K, paused 46ms
I/dalvikvm-heap(  791): Grow heap (frag case) to 10.747MB for 1048592-byte allocation
W/NetworkManagementSocketTagger(   78): setKernelCountSet(10005, 0) failed with errno -2
D/dalvikvm(  791): GC_FOR_ALLOC freed <1K, 4% free 10918K/11271K, paused 48ms
I/python  (  791): extracting libpymodules.so
I/WindowManager(   78): createSurface Window{41536310 org.kivy.popmtprocess/org.renpy.android.PythonActivity paused=false}: DRAW NOW PENDING
I/WindowManager(   78): createSurface Window{4158d7c8 SurfaceView paused=false}: DRAW NOW PENDING
I/SDLSurface(  791): surfaceCreated() is not handled :|
D/libEGL  (  791): Emulator without GPU support detected. Fallback to software renderer.
D/libEGL  (  791): loaded /system/lib/egl/libGLES_android.so
D/gralloc_goldfish(  791): Emulator without GPU emulation detected.
D/dalvikvm(  791): GC_CONCURRENT freed 4K, 3% free 10948K/11271K, paused 4ms+5ms
W/SDLSurface(  791): Choose egl configuration
I/SDLSurface(  791): Try to use graphics config R8G8B8A8S8
I/SDLSurface(  791): Try to use graphics config R5G6B5S8
E/SDLSurface(  791): Unable to find a correct surface for this device !
F/libc    (  791): Fatal signal 11 (SIGSEGV) at 0x0000009c (code=1)
I/ActivityManager(   78): Process org.kivy.popmtprocess:python (pid 791) has died.
W/ActivityManager(   78): Force removing ActivityRecord{4151b5a8 org.kivy.popmtprocess/org.renpy.android.PythonActivity}: app died, no saved state
W/NetworkManagementSocketTagger(   78): setKernelCountSet(10040, 0) failed with errno -2
I/WindowManager(   78): WIN DEATH: Window{41536310 org.kivy.popmtprocess/org.renpy.android.PythonActivity paused=false}
W/WindowManager(   78): Force-removing child win Window{4158d7c8 SurfaceView paused=false} from container Window{41536310 org.kivy.popmtprocess/org.renpy.android.PythonActivity paused=false}
W/WindowManager(   78): Failed looking up window
W/WindowManager(   78): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@4153fc10 does not exist
W/WindowManager(   78):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7029)
W/WindowManager(   78):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7020)
W/WindowManager(   78):         at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1439)
W/WindowManager(   78):         at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
W/WindowManager(   78):         at dalvik.system.NativeStart.run(Native Method)
I/WindowManager(   78): WIN DEATH: null

À priori c’est le

I/SDLSurface(  791): surfaceCreated() is not handled :|
D/libEGL  (  791): Emulator without GPU support detected. Fallback to software renderer.
D/libEGL  (  791): loaded /system/lib/egl/libGLES_android.so
D/gralloc_goldfish(  791): Emulator without GPU emulation detected.
D/dalvikvm(  791): GC_CONCURRENT freed 4K, 3% free 10948K/11271K, paused 4ms+5ms
W/SDLSurface(  791): Choose egl configuration
I/SDLSurface(  791): Try to use graphics config R8G8B8A8S8
I/SDLSurface(  791): Try to use graphics config R5G6B5S8
E/SDLSurface(  791): Unable to find a correct surface for this device !

qui le tue hmm

Sûrement une la faute à l’émulateur (et/ou ma config).

Dernière modification par grim7reaper (Le 11/11/2012, à 00:04)

Hors ligne

#2442 Le 11/11/2012, à 00:18

tshirtman

Re : /* Topic des codeurs [7] */

arf, pourtant je construit pas d'application kivy, je pensais que ce ne serait pas un soucis… (mais en y réfléchissant, c'était un peu naif, vu comme python-for-android fonctionne). Tu peut essayer d'activer l'openglES dans l'émulateur http://android-developers.blogspot.fr/2 … dware.html

Sinon je peux lancer l'applie et tu connecte ton gdb distant sur ma tablette… je dis à gdbserver d'écouter sur un port public…

edit: je suis en train de regarder pour commenter les lignes que tentent d'instancier tout ça…

Dernière modification par tshirtman (Le 11/11/2012, à 00:38)

Hors ligne

#2443 Le 11/11/2012, à 00:44

grim7reaper

Re : /* Topic des codeurs [7] */

Bon alors y’a du mieux (j’ai dû activer le truc cette fois, ça semble passer)
Mais il n’est toujours pas content (au moins il se lance) :

Could not extract public data.

Peut-être lié à :

E/python  (  584): could not open /mnt/sdcard/org.kivy.popmtprocess/.env

Hors ligne

#2444 Le 11/11/2012, à 01:19

tshirtman

Re : /* Topic des codeurs [7] */

ah, as-tu moyen de faire simuler une carte sd (interne ou externe) à ton emulateur? sinon je reconstruit mais en lui disant d'installer en interne…

edit: c'est chelou qu'il demande .env, c'est un fichier dans le dossier, mais qui n'a rien à voir avec l'applie, c'est juste mon pseudo makefile en shell…

Dernière modification par tshirtman (Le 11/11/2012, à 01:25)

Hors ligne

#2446 Le 11/11/2012, à 01:36

grim7reaper

Re : /* Topic des codeurs [7] */

Merci, ça tourne.
Maintenant je vais essayer d’attacher le debugger.

Dernière modification par grim7reaper (Le 11/11/2012, à 01:37)

Hors ligne

#2447 Le 11/11/2012, à 01:47

grim7reaper

Re : /* Topic des codeurs [7] */

Hum, merde.
Mes gdb n’arrivent pas à se parler :

root@android:/data/bin # gdbserver :5050 --attach  736
Attached; pid = 736
Listening on port 5050
Remote debugging from host 10.0.2.2
readchar: Got EOF
Remote side has terminated connection.  GDBserver will reopen the connection.
Remote debugging using 127.0.0.1:5050
[New Thread 697]
Malformed packet(b) (missing colon): re:0;
Packet: 'T050b:1c7797be;0d:607597be;0f:403a0340;thread:2b9;core:0;'

hmm

Édit :

http://richiervs.blogspot.fr/2012/01/using-gdbserver-on-android-emulator.html a écrit :

This means the gdbserver and gdb in localhost are not compatible!!

La belle affaire (ça je le sentais venir…).

Dernière modification par grim7reaper (Le 11/11/2012, à 01:48)

Hors ligne

#2448 Le 11/11/2012, à 01:49

tshirtman

Re : /* Topic des codeurs [7] */

Ah oui j'ai eu ce soucis aussi, tu a le ndk android? essaye d'utiliser le gdb qui est dedans:
~/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gdb

chez moi.

Hors ligne

#2449 Le 11/11/2012, à 01:55

grim7reaper

Re : /* Topic des codeurs [7] */

C’est bien celui du NDK que j’utilise.

~/hacking/src/python-for-android/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gdb

Et le gdbserver que je push sur l’émulateur vient du NDK aussi

./adb push ~/hacking/src/python-for-android-stable/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/gdbserver /data/bin

hmm

Hors ligne

#2450 Le 11/11/2012, à 02:01

tshirtman

Re : /* Topic des codeurs [7] */

Hum, le gdbserver que j'utilise était déjà dans la tablette… je suis sur que j'ai eu exactement la même erreur que toi auparavant, mais je ne vois pas ce que tu peut avoir de différent à part ça… hmm

edit: peut être que c'est quand j'ai switché sur le ndk r8b que ça s'est résolu, j'étais tombé sur une page disant que r7 et r8 étaient buggés pour gdb, j'ai tenté r8b. (ils contiennent tous les différentes api pour compiler de toutes façons, donc ce n'est pas un soucis pour compiler python-for-android)

edit: arf, je vais devoir y aller, si tu trouve je lirais ça demain ^^ merci encore de regarder smile

Dernière modification par tshirtman (Le 11/11/2012, à 02:10)

Hors ligne

Haut de page ↑