emacs elisp ropemacs

Rastreando errores de tamaño máximo de error en emacs



elisp ropemacs (2)

Para mí también no funcionó. Encontré con Ch + v que, en realidad max-specpdl-size no modificó a max-specpdl-size en absoluto a 5 . Luego traté de configurarlo interactivamente con Mx set-variable . Eso tampoco cambió su valor. Finalmente logré configurarlo con Mx customize-variable .

Por cierto, en mi sistema max-specpdl-size era 140 y por lo tanto a pequeño. Tuve que aumentarlo a 1000 , no para obtener un seguimiento y depuración, sino para que funcione.

He estado recibiendo aleatoriamente el siguiente error en emacs:

La profundidad de encuadernación variable supera el tamaño máximo de specpdl

... y lo he estado recibiendo en momentos muy aleatorios. Después de investigar esto, parece como si un elisp en algún lugar se está repitiendo demasiado. ¿Hay alguna estrategia para rastrear esto? Estoy totalmente perdido en cuanto a lo que realmente está causando esto.

He recibido algunos errores que indican algo parecido a una recursión infinita con ropemacs (pero generalmente son errores de Python). ¿Podría algo ser mal configurado con ropemacs?

Actualización : Curiosamente, he encontrado que siempre recibo este error si hago una "Ch a" para "speedbar" pero no para "rope-".


Para rastrear el problema, puedes intentar esto:

(setq max-specpdl-size 5) ; default is 1000, reduce the backtrace level (setq debug-on-error t) ; now you should get a backtrace C-h a ; in speedbar

Debería obtener una respuesta al error, y en ese punto, puede rastrear la rutina ofensiva.

También intentaría cargar emacs sin tu archivo de configuración ( emacs -q ), para ver si hay algo en tu .emacs que esté afectando las cosas. (No consigo el bucle infinito usando Ch a ). Y si es su .emacs, entonces la mejor manera que he encontrado para rastrearlo es buscar binario (poner un error (error "frog") o estar en medio de sus .emacs, cargar, probar, si no hay problemas, ponga el error en 3/4, de lo contrario en 1/4, repita ...), o evalúe manualmente su .emacs línea por línea (región por región), probando después de cada porción. Esos ajustes deberían ayudar.