Xóa / xóa tất cả các điểm dừng


7

Có một cơ chế để xóa tất cả các điểm dừng (loại bỏ thiết bị en masse) để tránh phải chạy thủ công eval-defuntrên từng định nghĩa của chức năng không?


3
Mã của edebug-instrument-functionchương trình cho thấy chức năng này không phải là công cụ nếu (get symbol 'edebug)là điểm đánh dấu và chức năng này là công cụ nếu (get symbol 'edebug)là một khuyết điểm. Hiện tại phiên bản edebug-remove-all-instrumentationevals của bạn làm biến mất các chức năng không được nêu rõ nếu chúng đã được sử dụng trước đó.
Tobias

@Tobias Cảm ơn bạn đã quan sát! Tôi đã cập nhật chức năng.
ebpa

Câu trả lời:


5

Đồng thuận dường như là không có chức năng như vậy được tích hợp.

Vì dữ liệu thiết bị edebug được lưu trữ trên các ký hiệu đích, tôi đã sử dụng chức năng cơ bản sau:

(defun ebpa/edebug-remove-all-instrumentation ()
  "Remove all edebug instrumentation by visiting each function
definition and running `eval-defun`."
  (interactive)
  (mapatoms
   (lambda (symbol)
     (when-let (pos (car-safe (get symbol 'edebug)))
       (with-current-buffer (marker-buffer pos)
         (goto-char (marker-position pos))
         (eval-defun nil))))))
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.