Limpando / removendo todos os pontos de interrupção
7
Existe um mecanismo para limpar todos os pontos de interrupção (remover a instrumentação em massa) para evitar a necessidade de executar manualmente eval-defuna definição de cada função instrumentada?
O código de edebug-instrument-functionmostra que a função não está instrumentada se (get symbol 'edebug)for um marcador e a função está instrumentada se (get symbol 'edebug)for um contras. Atualmente, sua versão do edebug-remove-all-instrumentationevals desaprova funções não instrumentadas, se já foram instrumentadas anteriormente.
Tobias
@ Tobias Obrigado pela observação! Eu atualizei a função.
Ebpa 18/04
Respostas:
5
Parece haver consenso de que essa função não existe.
Como os dados da instrumentação edebug são armazenados nos símbolos de destino, eu tenho usado a seguinte função 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
mostra que a função não está instrumentada se(get symbol 'edebug)
for um marcador e a função está instrumentada se(get symbol 'edebug)
for um contras. Atualmente, sua versão doedebug-remove-all-instrumentation
evals desaprova funções não instrumentadas, se já foram instrumentadas anteriormente.Respostas:
Parece haver consenso de que essa função não existe.
Como os dados da instrumentação edebug são armazenados nos símbolos de destino, eu tenho usado a seguinte função básica:
fonte