Borrar / eliminar todos los puntos de interrupción
7
¿Existe un mecanismo para borrar todos los puntos de interrupción (eliminar la instrumentación en masa) para evitar la necesidad de ejecutar manualmente eval-defunla definición de cada función instrumentada?
El código de edebug-instrument-functionmuestra que la función no está instrumentada si (get symbol 'edebug)es un marcador y la función está instrumentada si (get symbol 'edebug)es una desventaja. Actualmente, su versión de edebug-remove-all-instrumentationevals defuns de funciones no instrumentadas si se han instrumentado antes.
Tobias
@Tobias ¡Gracias por la observación! He actualizado la función.
ebpa
Respuestas:
5
El consenso parece ser que no existe tal función incorporada.
Como los datos de instrumentación de edebug se almacenan en los símbolos de destino, he estado utilizando la siguiente función básica:
(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))))))
edebug-instrument-function
muestra que la función no está instrumentada si(get symbol 'edebug)
es un marcador y la función está instrumentada si(get symbol 'edebug)
es una desventaja. Actualmente, su versión deedebug-remove-all-instrumentation
evals defuns de funciones no instrumentadas si se han instrumentado antes.Respuestas:
El consenso parece ser que no existe tal función incorporada.
Como los datos de instrumentación de edebug se almacenan en los símbolos de destino, he estado utilizando la siguiente función básica:
fuente