Estou usando mew para o meu email. Preciso usar o TLS com meu provedor de email para SMTP. No entanto, quando tento invocar isso, o Emacs congela.
Gostaria de aproveitar esta oportunidade para aprender mais sobre os pacotes Emacs. Como eu iria depurar esse problema? Existe algum tipo de depurador interno, como no Common Lisp? Eu poderia usar o log?
debugging
quitting
frozen-emacs
Svante
fonte
fonte
M-x debug-on-entry THE-COMMAND
, em seguida, percorrer o depurador usandod
(ou algumas vezesc
para pular algumas etapas). Mantenha o código-fonte aberto em outro quadro, para poder seguir o que o depurador está fazendo. Relate o que você vê aqui ou, se você acha que isso sugere um bug do Emacs, usandoM-x report-emacs-bug
.Respostas:
Antes de recorrer
gdb
, se você estiver usando um sistema operacional Unix-y, tente enviarSIGUSR2
para o processo Emacs, como documentado noDEBUG
arquivo mencionado na outra resposta.Isso fará com que o Emacs tente interromper seu loop atual no depurador Lisp.
Ou use este liner sem digitar o emacs pid manualmente:
Como alternativa, se
killall
estiver disponível:fonte
/
para procuraremacs
ek
enviar o sinal. O Activity Monitor em um Mac também pode fazer isso (no menu: Exibir | Enviar sinal para processo).Se o congelamento desaparecer quando você pressionar
C-g
, poderá usar o depurador embutido. DigiteM-x toggle-debug-on-quit
antes de enviar a mensagem, pressioneC-g
quando congela e inspecione o*Backtrace*
buffer que aparece.Se
C-g
isso não ajudar, o congelamento provavelmente acontece no código C e você precisará usar um depurador externo comogdb
. CliqueC-h C-d
para ver oDEBUG
arquivo que fornece algumas dicas sobre como fazer isso. (Você também pode ler o arquivo DEBUG na interface da Web do repositório do Emacs .) Esta resposta entra em mais detalhes sobre como usargdb
com o Emacs.fonte
C-g
várias vezes:C-g C-g C-g
.Quitting
do Emacs, nó . Como eu achei isso?C-h r i
, digite "Cg" e pressioneRET
.