Я использую мяу для своей электронной почты. Мне нужно использовать TLS с моим провайдером электронной почты для SMTP. Однако, когда я пытаюсь вызвать это, Emacs зависает.
Я хотел бы воспользоваться этой возможностью, чтобы узнать больше о пакетах Emacs. Как мне отладить эту проблему? Есть ли какой-то встроенный отладчик, как в Common Lisp? Могу ли я использовать ведение журнала?
debugging
quitting
frozen-emacs
Сванте
источник
источник
M-x debug-on-entry THE-COMMAND
, а затем пройтись по отладчику, используяd
(или иногдаc
пропустить некоторые шаги). Держите исходный код открытым в другом фрейме, чтобы вы могли следить за тем, что делает отладчик. Сообщите, что вы видите здесь, или, если вы думаете, что это предлагает ошибку Emacs, используяM-x report-emacs-bug
.Ответы:
Прежде чем прибегнуть к помощи
gdb
, если вы используете операционную систему Unix-y, вы можете попробовать отправитьSIGUSR2
процесс Emacs, как описано вDEBUG
файле, упомянутом в другом ответе.Это заставит Emacs попытаться вырваться из своего текущего цикла в отладчик Lisp.
Или используйте этот вкладыш, не набирая emacs pid вручную:
В качестве альтернативы, если
killall
доступно:источник
/
искатьemacs
иk
отправлять сигнал. Монитор активности на Mac также может это сделать (из меню: Просмотр | Отправить сигнал процессу).Если замораживание исчезает, когда вы нажимаете
C-g
, то вы можете использовать встроенный отладчик. ВведитеM-x toggle-debug-on-quit
перед отправкой сообщение, нажмите,C-g
когда оно замерзнет, и осмотрите*Backtrace*
буфер, который появляется.Если
C-g
это не помогает, то, вероятно, зависание происходит в коде C, и вам нужно использовать внешний отладчик, такой какgdb
. Нажмите,C-h C-d
чтобы увидетьDEBUG
файл, который дает некоторые советы о том, как это сделать. (Вы также можете прочитать файл DEBUG в веб-интерфейсе репозитория Emacs .) В этом ответе более подробно рассказывается о том, как использоватьgdb
Emacs.источник
C-g
несколько раз:C-g C-g C-g
.Quitting
. Как я это нашел?C-h r i
, затем введите «Cg» и нажмитеRET
.