Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

not in range of buffer

5 réponses
Avatar
Philippe Idlavi
Bonjour,

A l'ouverture d'Xemacs j'obtiens le message

<end> not in range of buffer

dans le mini-buffer après l'ouverture des fichiers de la session précédente.
Quelqu'un peut-il m'indiquer ce que cela signifie ?

Merci et bonne journée.
Philippe.

5 réponses

Avatar
drkm
Philippe Idlavi writes:

<end> not in range of buffer



Peux-tu obtenir un backtrace ?

--drkm
Avatar
Philippe Idlavi
drkm a écrit :
Peux-tu obtenir un backtrace ?



Excusez moi, je ne comprends ce que signifie "obtenir un bactrace".
J'ai quand même essayé :

M-x backtrace

ce qui donne :

#<subr backtrace (interactive)>()

Merci de votre aide.
Avatar
drkm
Philippe Idlavi writes:

drkm a écrit :

Peux-tu obtenir un backtrace ?



Excusez moi, je ne comprends ce que signifie "obtenir un bactrace".



Il faut demander à Emacs d'afficher, en cas d'erreur, une état de la
pile d'appel, de manière à situer l'endroit où est apparu l'erreur, et
se faire une idée du contexte. La manière de lui demander cela est de
fixer debug-on-error à t.

Je n'ai pas bien compris si l'erreur se produit de manière
interactive (lors du traitement d'une commande, par exemple après
l'appui sur une touche, ou l'appel explicite via M-x), ou lors du
chargement (par exemple lors de l'évaluation de .emacs).

Si c'est de manière interactive, il suffit d'appeler
toggle-debug-on-error avant de reproduire l'erreur. Sinon, tu peux
ajouter (setq debug-on-error t) en première ligne de ton .emacs. Si
l'erreur se produit avant, c'est un peu plus compliqué, mais ça n'est
pas fréquent.

Une fois dans le buffer du Backtrace, tu peux en copier le contenu
(par exemple par C-x h M-w). Tu quittes alors le buffer, par la
touche q. Puis tu colles ce que tu as copié (par C-y) dans un message
que tu nous postes. Ça nous permetteras d'en savoir beaucoup plus sur
le contexte et l'endroit d'apparition de l'erreur.

J'ai quand même essayé :

M-x backtrace

ce qui donne :

#<subr backtrace (interactive)>()



Tiens, c'est bizarre comme sortie. C'est plutôt ce à quoi je
m'attendrais comme résultat de (symbol-function 'backtrace). Pour M-x
backtrace, je m'attendrais plutôt à quelque chose comme :

backtrace()
call-interactively(backtrace)
execute-extended-command((4))
call-interactively(execute-extended-command)

Voilà, je n'ai pas vraiment le temps d'être plus explicite, ni même
de me relire. J'espère que c'est assez clair et que cela suffira.

--drkm
Avatar
Philippe Idlavi
drkm a écrit :
Philippe Idlavi writes:


drkm a écrit :




Peux-tu obtenir un backtrace ?






Excusez moi, je ne comprends ce que signifie "obtenir un bactrace".




_ ___ _ oooh...!


Je n'ai pas bien compris si l'erreur se produit de manière
interactive (lors du traitement d'une commande, par exemple après
l'appui sur une touche, ou l'appel explicite via M-x), ou lors du
chargement (par exemple lors de l'évaluation de .emacs).



Lors du chargement ou plutôt à la fin du chargement puisque des fichiers
s'ouvrent sans qu'il sourcille.


Si c'est de manière interactive, il suffit d'appeler
toggle-debug-on-error avant de reproduire l'erreur. Sinon, tu peux
ajouter (setq debug-on-error t) en première ligne de ton .emacs. Si
l'erreur se produit avant, c'est un peu plus compliqué, mais ça n'est
pas fréquent.



J'ai ajouté "(setq debug-on-error t)" à "~/.xemacs/init.el" et
fermé quelques buffers que je ne visite pas souvent.

Une fois dans le buffer du Backtrace, tu peux en copier le contenu
(par exemple par C-x h M-w). Tu quittes alors le buffer, par la
touche q. Puis tu colles ce que tu as copié (par C-y) dans un message
que tu nous postes. Ça nous permetteras d'en savoir beaucoup plus sur
le contexte et l'endroit d'apparition de l'erreur.




Je ferme Xemacs, l'ouvre à nouveau et il n'y a plus d'erreur !
Je pense que l'erreur provenait du fichier "~/.emacs-places". Je ne sais s'il y
a un rapport mais j'utilise parfois emacs qui partage ce fichier avec Xemacs.


J'ai quand même essayé :




M-x backtrace




ce qui donne :




#<subr backtrace (interactive)>()




Tiens, c'est bizarre comme sortie. C'est plutôt ce à quoi je
m'attendrais comme résultat de (symbol-function 'backtrace). Pour M-x
backtrace, je m'attendrais plutôt à quelque chose comme :

backtrace()
call-interactively(backtrace)
execute-extended-command((4))
call-interactively(execute-extended-command)



Là ça me dépasse....


Voilà, je n'ai pas vraiment le temps d'être plus explicite, ni même
de me relire. J'espère que c'est assez clair et que cela suffira.




Très clair, très suffisant. Merci beaucoup de m'avoir consacré de votre temps.

--drkm



Philippe.
Avatar
drkm
Philippe Idlavi writes:

Très clair, très suffisant. Merci beaucoup de m'avoir consacré de votre temps.



Pas de quoi. En général, devant une erreur que l'on ne comprend pas
de suite, générer un backtrace est le premier réflexe à avoir. Un
premier coup d'oeil est souvent très instructif, notamment pour la
valeur des paramètres passés, comme un nil qui se balade là où il
n'est pas attendu.

--drkm