it-swarm-es.com

¿Cómo puedo depurar / monitorear Emacs para descubrir por qué está usando tanta memoria?

Estoy usando GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu, GTK + Versión 2.18.0) e inicio mi sesión de Emacs dentro de la pantalla GNU.

Desde que actualicé a Ubuntu 10.04 y la versión de emacs-snapshot allí encuentro algunos problemas. A veces Emacs acapara todo RAM más la misma cantidad de espacio de intercambio (2 + 2GB) y también consume todo el tiempo de CPU. Cuando envío el proceso un SIGTERM, el proceso deja de consumir tiempo de CPU, pero la gran cantidad de memoria asignada permanece. Emacs en sí no toma ninguna secuencia de teclas. Por lo general, envío el proceso un SIGKILL y muere.

Ahora quiero averiguar dónde se encuentra el error (si hay uno) y quiero hacer alguna depuración. No puedo ver ninguna razón especial para este comportamiento. A veces comienza después de que Emacs está recién iniciado, a veces puedo trabajar todo un día sin problemas, a veces sucede en el medio. Así que estoy buscando un tipo de depuración o monitoreo del proceso.

Intenté strace, pero esto genera demasiada salida. La salida directa de una sesión de edición podría llenar fácilmente todo mi disco duro. Ejecutar Emacs dentro de gdb tampoco funcionaría, porque si no recuerdo mal, Ubuntu construye el software sin depurar símbolos. Entonces, ¿tiene algún consejo sobre cómo puedo encontrar el (posible) error? ¿Qué sugieres?

4
qbi

Encontré la respuesta a esto por accidente. El problema no era emacs, sino un mal funcionamiento del llavero GNOME. Cuando inicio Emacs sin el demonio llavero, todo está bien. Entonces deshabilitarlo resolvió mi problema aquí.

1
qbi

¿Quizás el paquete emacs-snapshot-dbg podría ser de interés?

"Este paquete contiene los símbolos de depuración útiles para depurar Emacs".

1
andol

En este momento estoy tratando de guardar todo el contenido de Messages-buffer en un archivo y espero encontrar algo útil:

(with-current-buffer "*Messages*" (auto-save-mode t))
0
qbi