Temukan asal mula peringatan


11

Saya menjalankan perintah dan menerima peringatan di minibuffer.

Peringatan yang tepat adalah comint-completion-at-point failed to return valid completion data, setelah saya melengkapi perintah secara otomatis shell-mode.

Bagaimana saya bisa menentukan asal peringatan itu?


Lihat manual tentang Program Lisug Debugging .
freakhill

1
C-h f comint-completion-at-point, lalu klik nama file untuk melihat kode sumber. Cari pesan kesalahan itu. (Anda juga dapat menerima pesan kesalahan di sumber Lisp, untuk menemukannya.)
Drew

Jawaban:


17

Seperti yang ditunjukkan dalam jawaban lain Anda akan menemukan manual yang bagus berguna untuk semua alat debug yang dimilikinya. Untuk Anda masalah khusus, saya akan mempertimbangkan:

(setq debug-on-message "comint-completion-at-point failed to return valid completion data")

Seperti yang dinyatakan teks bantuan:

If non-nil, debug if a message matching this regexp is displayed.

Dari ini, Anda harus mendapatkan backtrace ketika kegagalan terjadi. Anda kemudian dapat menginstruksikan fungsi yang dimaksud dengan Cu CMx dan melangkah melalui kegagalan saat itu terjadi untuk informasi selengkapnya.


3
Ini jawaban yang sangat bagus. Terima kasih. Saya pikir Anda memiliki penawaran tambahan di baris pertama Anda, tempat Anda menggabungkan setqdan 'debug-on-message. Mengubah setq debug-on-messageatau set 'debug-on-messagememperbaikinya untuk saya.
Matius Piziak

@MatthewPiziak: terima kasih - mengutip dengan terlalu bersemangat.
stsquad

Ini jauh lebih baik daripada zgrepping sumber terkompresi Emacs! Satunya downside dari ini adalah bahwa kondisi bermasalah harus terjadi sebelum seseorang dapat men-debug itu.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.