Tìm nguồn gốc cảnh báo


10

Tôi chạy một lệnh và nhận được một cảnh báo trong xe buýt nhỏ.

Cảnh báo chính xác là comint-completion-at-point failed to return valid completion data, sau khi tôi tự động hoàn thành một lệnh shell-mode.

Làm thế nào tôi có thể xác định nguồn gốc elisp của cảnh báo?


Hãy xem hướng dẫn về Chương trình gỡ lỗi Lisp .
freakhill

1
C-h f comint-completion-at-point, sau đó nhấp vào tên tệp để xem mã nguồn. Hãy tìm thông báo lỗi đó. (Bạn cũng có thể grep cho thông báo lỗi trong các nguồn Lisp, để tìm nó.)
vẽ

Câu trả lời:


16

Như đã chỉ ra trong câu trả lời khác, bạn sẽ thấy hướng dẫn sử dụng tốt hữu ích cho tất cả các công cụ gỡ lỗi mà nó có. Đối với bạn vấn đề cụ thể tôi sẽ xem xét:

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

Như văn bản trợ giúp nêu:

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

Từ điều này, bạn sẽ nhận được một backtrace khi thất bại xảy ra. Sau đó, bạn có thể sử dụng các chức năng được đề cập với Cu CMx và bước qua thất bại vào lần tiếp theo để biết thêm thông tin.


3
Đây là một câu trả lời tuyệt vời. Cảm ơn bạn. Tôi nghĩ rằng bạn có một trích dẫn thêm trong dòng đầu tiên của bạn, nơi bạn kết hợp setq'debug-on-message. Thay đổi nó setq debug-on-messagehoặc set 'debug-on-messagesửa nó cho tôi.
Matthew Piziak

@MatthewPiziak: cảm ơn - trích dẫn quá nhiệt tình.
stsquad

Điều này là tốt hơn nhiều so với việc zgrepping các nguồn nén Emacs! Chỉ có nhược điểm của điều này là tình trạng có vấn đề phải xảy ra trước khi người ta có thể gỡ lỗi nó.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.