Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1382 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [XFree] XError , je ne comprends pas a quoi ca correspond

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XFree] XError , je ne comprends pas a quoi ca correspond

n°554389
xilebo
noone
Posté le 30-10-2003 à 12:11:28  profilanswer
 

Salut,
 
J'ai des erreurs XError qui surgissent dans mon programme mais je ne vois pas d ou ca peut venir.
 
Ca quitte carrément mon programme (je trouve ca violent) et j'ai comme message d erreur le message suivant :
 

Code :
  1. XError of failed request:  BadLength (poly request too large or internal Xlib length error)
  2. Major opcode of failed request:  76 (X_ImageText8)
  3. Serial number of failed request:  760
  4. Current serial number in output stream:  800


La seule fonction que j utilise est :
 
XPutImage.
 
 
Je n utilise rien d autre.
 
(Ah si : XNextEvent pour recuperer les evenements et XCreateWindows au debut pour creer la fenetre)
 
 
merci de votre aide :)

mood
Publicité
Posté le 30-10-2003 à 12:11:28  profilanswer
 

n°554485
bounty
Posté le 30-10-2003 à 14:16:55  profilanswer
 

difficile de dire comme ça. Si tu pouvais deja ns donner la ligne de code qui pose pbm, ça pourrait ns aider...

n°554561
xilebo
noone
Posté le 30-10-2003 à 15:24:28  profilanswer
 

Bah je veux bien donner la ligne de code mais il ne s agit que d un appel a :
XPutImage  
 
Et il y a tellement de fonctions imbriquées que ca ne servirait a rien de filer la ligne de code.
 
 
 
Par contre, apres quelques tests , je viens de m apercevoir que dans un certain cas, j'avais plus de 2000 appels a cette fonction en un meme temps (ce qui est aberrant je suis d'accord) , et ca doit etre ca qui provoque le plantage.
 
 
 
Je continue a tester ...

n°557745
xilebo
noone
Posté le 03-11-2003 à 15:30:22  profilanswer
 

Bon, je commence a avoir de serieux problemes et je ne comprends pas d'ou ca vient.
 
Je peine a trouver sur internet des exemples de code ou des solutions pour resoudre mon probleme, je n'ai meme pas trouvé la liste des codes d'erreur.
 
 
A savoir : mon application fonctionne sous windows et sous linux , donc mis a part les appels systemes (creation de fenetre, dessin d'une image, dialogue avec le port serie) le code est identique.  
 
Cette application fonctionne tres bien sous windows mais elle est essentiellement destiné a linux et elle plante non pas sur des problemes de memoire (pas de coredump ou autre) mais bien sur les appels aux fonctions X (puisque l 'application quitte inopinément avec un message d erreur X).
 
Le probleme est que RIEN n est expliqué dans la doc de X, ni la facon d'utiliser les fonctions que j'utilise.
 
 
En gros mon application se resume à :
 
- Je cree une fenetre.
- Je cache mon pointeur.
- Je cree une boucle d'evenement (un while sur la fonction XNextEvent).
- Selon les evenements (click souris) , je redessine a l'aide la fonction XPutImage ma fenêtre.
- J'ai egalement un thread de reception qui lit sur le port série, et selon ce qui est recu , dessine aussi dans la fenetre a l aide de la fonction XPutImage.
 
On a donc la fonction XPutImage appelée a la fois dans mon processus principal et egalement dans le(s) thread(s) secondaires. (peut etre ca vient de la).
 
J'ai mis un compteur sur mon appel XPutImage, il arrive parfois que j'ai 100 a 200 appels a cette fonction (rien que pour dessiner les caracteres). Je pense que c est peu.
 
Autre info : a chaque appel XPutImage , je fais appel a XFlush egalement sinon si les surfaces dessinées sont trop petites, elles sont ignorées (les plantages arrivent aussi sans cette fonction donc je ne pense pas que ca vienne de la).
 
J'aimerai donc savoir si il existe un autre moyen simple d afficher des images (16 bits toutes simples) autrement qu en utilisant la fonction XPutImage. (Un exemple d application minimal serait genial).
 
Existe t il aussi la liste des codes d erreurs de XFree car ca serait plus pratique de savoir pourquoi l appel XFree plante. Et je n'ai pas trouvé cette liste sur le site www.xfree.org.
 
 
Merci de votre aide , ca m'aiderait grandement.:)

n°559503
bounty
Posté le 05-11-2003 à 12:12:31  profilanswer
 

Après avoir un peu cherché, j'ai vu qu'apparement le serveur X a besoin d'etre configuré d'une façon spéciale si tu utilise des threads (via fct comme XInitThreads(), XLockDisplay(), ...).
+ d'info sur  
http://tronche.com/gui/x/xlib/display/threads.html
 
Mais maintenant, c'est à toi de te débrouiller car j'ai bien peur de ne pouvoir plus t'aider.
Désolé :(


Message édité par bounty le 05-11-2003 à 12:12:55
n°559722
xilebo
noone
Posté le 05-11-2003 à 14:35:18  profilanswer
 

Parfait, c etait exactement ca. Merci beaucoup, j'ai donc un probleme de resolu. Il apparait evident que ca venait de la, lorsque j'avais 2 acces concurentiel a une fonction de dessin mais je pensais que c etait implicite comme sous windows. (Je ne vois pas bien l'interet de proposer un mode monotache mais il y a surement une raison pour ).
 
 
Il me reste a resoudre ce probleme de message qui reste dans la queue des messages (voir autre post). Je suis allé sur le channel irc mais y a autant de monde qu en terre adélie.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [XFree] XError , je ne comprends pas a quoi ca correspond

 

Sujets relatifs
[SDL] je comprends pas bien une fonction...Je comprends pas pkoi j'ai cette erreur sur ma vue sous Oracle
[XFree 4.3.0] Pb de rafraichissement XEventQui peut m'aider a decrypter cette ligne ? A quoi correspond elle?
[sessions] hu ? |Oo| comprends po là[résolu]variable dynamique, comprends pas
[Access - VBA] je comprends plus rien aux INSERT INTO avec datesRassurez moi en me disant si je comprends bieng... Bit Vector.
Un message d'erreur que je ne comprends pas...besoin d'aide[STL] list, push_back et ses joyeux amis... Je comprends pas tout
Plus de sujets relatifs à : [XFree] XError , je ne comprends pas a quoi ca correspond


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)