Saya menggunakan mew untuk email saya. Saya perlu menggunakan TLS dengan penyedia email saya untuk SMTP. Namun, ketika saya mencoba memintanya, Emacs membeku.
Saya ingin memanfaatkan kesempatan ini untuk mempelajari lebih lanjut tentang paket Emacs. Bagaimana cara saya men-debug masalah ini? Apakah ada semacam debugger bawaan, seperti di Common Lisp? Bisakah saya menggunakan logging?
debugging
quitting
frozen-emacs
Svante
sumber
sumber
M-x debug-on-entry THE-COMMAND
, kemudian melangkah melalui debugger menggunakand
(atau kadang-kadangc
untuk melewati beberapa langkah). Biarkan kode sumber terbuka di frame lain, sehingga Anda dapat mengikuti apa yang dilakukan debugger. Laporkan apa yang Anda lihat di sini atau, jika Anda pikir itu menyarankan bug Emacs, gunakanM-x report-emacs-bug
.Jawaban:
Sebelum beralih ke
gdb
, jika Anda menggunakan sistem operasi Unix-y, Anda dapat mencoba mengirimSIGUSR2
ke proses Emacs, seperti didokumentasikan dalamDEBUG
file yang disebutkan dalam jawaban lain.Ini akan membuat Emacs berusaha untuk keluar dari loop saat ini ke debugger Lisp.
Atau gunakan liner yang satu ini tanpa mengetikkan emacs pid secara manual:
Atau, jika
killall
tersedia:sumber
/
untuk mencariemacs
dank
mengirim sinyal. Activity Monitor pada Mac juga dapat melakukannya (dari menu: View | Send Signal to Process).Jika pembekuan hilang saat Anda menekan
C-g
, maka Anda dapat menggunakan debugger bawaan. KetikM-x toggle-debug-on-quit
sebelum mengirim pesan, tekanC-g
saat membeku, dan periksa*Backtrace*
buffer yang muncul.Jika
C-g
tidak membantu, maka pembekuan mungkin terjadi dalam kode C, dan Anda harus menggunakan debugger eksternal sepertigdb
. HitC-h C-d
untuk melihatDEBUG
file yang memberikan beberapa petunjuk tentang cara melakukannya. (Anda juga dapat membaca file DEBUG di antarmuka web repositori Emacs .) Jawaban ini menjelaskan lebih detail tentang cara menggunakangdb
Emacs.sumber
C-g
beberapa kali:C-g C-g C-g
.Quitting
. Bagaimana saya menemukan itu?C-h r i
, lalu ketik "Cg" dan tekanRET
.