7
votes

Y a-t-il un tour pour déboguer une spin dans Emacs Elisp, dans un module de mouche?

Je reçois un spin de CPU dans Emacs Elisp, dans le module C # FlyMake. (Flymake est le module d'EMACS qui exécute périodiquement une version, puis met en évidence toutes les erreurs de syntaxe ou les avertissements dans le tampon actuel.)

Je suis sur le point de marcher dans le code, de rechercher des endroits probables où un spin pourrait se produire.

Pendant que je suis à cela, quelqu'un a-t-il des suggestions de déterminer le spin? Y a-t-il quelque chose dans Emacs qui me permet d'arrêter l'exécution et de voir où elle s'est arrêtée?


0 commentaires

4 Réponses :



9
votes

Utiliser M-x SET-Variable Pour définir Débogou-on-Quit à t . Ensuite, lorsque le problème se produit, frappez C-G et le débogueur vous donnera une backtrage de ce qui était en cours d'exécution lorsque vous l'avez arrêté.


1 commentaires

Il y a aussi M-x Toggle-déboguant-on-cessation.



5
votes

Flymake Définit une minuterie de 1 seconde pour chaque tampon que le mode FlyMake est activé, de vérifier si le tampon a été modifié plus de Flymake-no-modifications-Timeout secondes. < / p>

Si vous avez beaucoup de tampons ouverts (plusieurs centaines) en mode FlyMake, cela peut dévorer une quantité étonnamment grande de CPU, j'ai une version patchée de FlyMake qui possède une seule minuterie globale qui la corrige et un Peu d'autres questions: https://github.com/illusori/emacs-flymake

Cela pourrait ne pas être le même problème pour vous, mais pour moi, cela verrouille Emacs up lors de l'ouverture du mode de bureau avec 600 fichiers ouverts, j'avais de la chance d'obtenir une clé de clavier traitée toutes les 15 minutes.


1 commentaires

Merci, Sam, qui a l'air très utile, je vais l'essayer.



2
votes

sur OS X, j'ai eu un problème de sondage similaire dans lequel FlyMake accrocherait Emacs lors de l'ouverture d'un nouveau fichier (même avec seulement quelques tampons ouverts). Activation de débogué-on-quitter code> n'a pas aidé, car toute l'interface graphique verrouillée.

Fixation de GDB à EMACS renvoyé ce qui suit: p>

(setq flymake-gui-warnings-enabled nil)


0 commentaires