Я использую GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu, GTK + версия 2.18.0) и запускаю сеанс Emacs на экране GNU.
Так как я обновился до Ubuntu 10.04 и версии emacs-snapshot
, я столкнулся с некоторыми проблемами. Иногда Emacs загружает всю оперативную память плюс тот же объем пространства подкачки (2 + 2 ГБ), а также съедает все процессорное время. Когда я отправляю процессу SIGTERM, процесс перестает потреблять процессорное время, но остается огромный выделенный объем памяти. Сам Emacs не принимает никаких последовательностей клавиш. Поэтому обычно я посылаю процесс SIGKILL, и он умирает.
Теперь я хочу выяснить, где находится ошибка (если она есть), и хочу выполнить некоторую отладку. Я не вижу особых причин для такого поведения. Иногда он начинается после того, как Emacs был запущен заново, иногда я могу работать целый день без проблем, иногда это происходит между ними. Поэтому я ищу способ отладки или мониторинга процесса.
Я пытался strace
, но это генерирует слишком много продукции. Непосредственный вывод сеанса редактирования может легко заполнить весь мой жесткий диск. Запуск Emacs внутри gdb также не будет работать, потому что, если я правильно помню, Ubuntu собирает программное обеспечение без отладочных символов. Итак, есть ли у вас какие-либо советы о том, как я могу найти (возможную) ошибку? Что бы вы предложили?
В данный момент я пытаюсь сохранить все содержимое буфера сообщений в файл и надеюсь найти что-то полезное:
(with-current-buffer "*Messages*" (auto-save-mode t))
Я нашел ответ на это случайно. Проблема была не в emacs, а в некорректном наборе ключей GNOME. Когда я запускаю Emacs без демона ключей, все в порядке. Так что его отключение решило мою проблему здесь.
Возможно, пакет emacs-snapshot-dbg может быть интересен?
«Этот пакет содержит символы отладки, полезные для отладки Emacs».