Trouver l'origine précise de l'avertissement

11

J'ai exécuté une commande et reçu un avertissement dans le mini-tampon.

L'avertissement exact était comint-completion-at-point failed to return valid completion data, après avoir complété automatiquement une commande dans shell-mode.

Comment puis-je déterminer l'origine précise de l'avertissement?

Matthew Piziak
la source
Jetez un œil au manuel sur le débogage des programmes Lisp .
freakhill
1
C-h f comint-completion-at-point, puis cliquez sur le nom du fichier pour voir le code source. Recherchez ce message d'erreur. (Vous pouvez également rechercher le message d'erreur dans les sources Lisp, pour le trouver.)
Drew

Réponses:

17

Comme indiqué dans l'autre réponse, vous trouverez le manuel fin utile pour tous les outils de débogage dont il dispose. Pour votre problème spécifique, je considérerais:

(setq debug-on-message "comint-completion-at-point failed to return valid completion data")

Comme l'indique le texte d'aide:

If non-nil, debug if a message matching this regexp is displayed.

De cela, vous devriez obtenir une trace lorsque l'échec se produit. Vous pouvez ensuite instrumenter les fonctions en question avec Cu CMx et parcourir l'échec la prochaine fois qu'il se produit pour plus d'informations.

stsquad
la source
3
Ceci est une excellente réponse. Je vous remercie. Je pense que vous avez un devis supplémentaire dans votre première ligne, où vous combinez setqet 'debug-on-message. Le changer setq debug-on-messageou le set 'debug-on-messagecorriger pour moi.
Matthew Piziak
@MatthewPiziak: merci - citations trop zélées corrigées.
stsquad
C'est tellement mieux que zgrepping les sources compressées Emacs! Le seul inconvénient est que la condition problématique doit se produire avant de pouvoir la déboguer.