Estoy usando mew para mi correo electrónico. Necesito usar TLS con mi proveedor de correo electrónico para SMTP. Sin embargo, cuando trato de invocar eso, Emacs se congela.
Me gustaría aprovechar esta oportunidad para aprender más sobre los paquetes de Emacs. ¿Cómo haría para depurar este problema? ¿Hay algún tipo de depurador incorporado, como en Common Lisp? ¿Puedo usar el registro?
debugging
quitting
frozen-emacs
Svante
fuente
fuente
M-x debug-on-entry THE-COMMAND
, luego pasar por el depurador usandod
(o, a veces,c
omitir algunos pasos). Mantenga el código fuente abierto en otro marco, para que pueda seguir lo que está haciendo el depurador. Informe lo que ve aquí o, si cree que sugiere un error de Emacs, useM-x report-emacs-bug
.Respuestas:
Antes de recurrir
gdb
, si está utilizando un sistema operativo Unix-y, puede intentar enviarloSIGUSR2
al proceso Emacs, como se documenta en elDEBUG
archivo mencionado en la otra respuesta.Esto hará que Emacs intente salir de su bucle actual en el depurador Lisp.
O use este forro sin escribir emacs pid manualmente:
Alternativamente, si
killall
está disponible:fuente
/
para buscaremacs
yk
enviar la señal. El Monitor de actividad en una Mac también puede hacerlo (desde el menú: Ver | Enviar señal al proceso).Si la congelación desaparece cuando golpeas
C-g
, entonces puedes usar el depurador incorporado. EscribaM-x toggle-debug-on-quit
antes de enviar el mensaje, presioneC-g
cuando se congele e inspeccione el*Backtrace*
búfer que aparece.Si
C-g
no ayuda, entonces la congelación probablemente ocurra en el código C, y necesitará usar un depurador externo comogdb
. PresionaC-h C-d
para ver elDEBUG
archivo que da algunas pistas sobre cómo hacerlo. (También puede leer el archivo DEBUG en la interfaz web del repositorio de Emacs ). Esta respuesta incluye más detalles sobre cómo usargdb
con Emacs.fuente
C-g
varias veces:C-g C-g C-g
.Quitting
. ¿Cómo encontré eso?C-h r i
, luego escribe "Cg" y presionaRET
.