En l'occurrence, OpenShot n'affichait plus les icônes et les onglets après mise à jour vers Ubuntu 10.10.
Pour tenter de comprendre l'origine d'un autre problème (lié à Compiz), j'ai créé un deuxième compte tout neuf.
Et ô surprise, OpenShot s'affiche correctement ! Mais pourquoi donc ?
Voici comment j'ai trouvé l'explication. (Les exemples sont pour OpenShot, mais ça marche pareil pour tout autre logiciel).
Sous le 1er compte, exécuter dans un terminal :
$ strace openshot 2> os.logQuitter OpenShot immédiatement, sinon le fichier explose.
$ grep "open(" os.log > /tmp/os-user1.logSous le 2ème compte, exécuter dans un terminal :
$ strace openshot 2> os.log
$ grep "open(" os.log > /tmp/os-user2.logEt enfin :
$ diff /tmp/os-* | lessLa lecture attentive des différences montre qu'une bibliothèque liée aux thèmes n'est pas la même pour chaque compte. Le bug est dû au thème personnalisé du compte 1 (utilisation des widgets "Inverted").
Et hop!
# En lisant les options de strace...
Posté par liberforce (site web personnel) . Évalué à 10.
strace -o log -eopenD'autres exemples d'utilisation pratique de strace:
http://fr.gnomesupport.org/forums/viewtopic.php?id=612
http://fr.gnomesupport.org/forums/viewtopic.php?pid=2421
[^] # Re: En lisant les options de strace...
Posté par VoixOff . Évalué à -5.
[^] # Re: En lisant les options de strace...
Posté par riba . Évalué à 3.
strace -e open ...
[^] # Re: En lisant les options de strace...
Posté par Johands . Évalué à 7.
Concernant le ton de la réponse, pas la peine de s'en offusquer : 1) ça arrive à tout le monde de survoler une manpage et d'y rater une option; 2) osef, du moment qu'on finit par apprendre quelque chose de nouveau et potentiellement d'utile.
[^] # Re: En lisant les options de strace...
Posté par liberforce (site web personnel) . Évalué à 1.
# et avec SystemTap
Posté par Krunch (site web personnel) . Évalué à 7.
$ cat findbadfiles.stp // findbadfiles.stp GOOD_UID BAD_UID global good global bad probe syscall.open { if (execname() == "openshot") { if (uid() == $1) { good[$filename] = 1 } if (uid() == $2) { bad[$filename] = 1 } } } probe end { foreach (file in bad) { if (!good[file]) { printf("%s\n", file) } } }Si le bon utilisateur a l'UID 1000 et le mauvais 1001, ça se lance comme ça : Après tu lances le programme avec le bon utilisateur et le mauvais. Une fois que c'est fait, tu interromps le script SystemTap et il va t'afficher les fichiers qui ont été ouvert dans le cas qui a merdé mais pas dans l'autre. J'ai absolument pas testé.pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.