Точки останова в исходном коде
Все точки останова в определении забываются каждый раз, когда вы его переинструментируете. Если вы хотите создать точку останова, которая не будет забываться, вы можете написать точку останова в исходном коде, что просто вызов функции edebug в вашем исходном коде. Конечно, вы можете сделать такой вызов условным. Например, в функции fac, вы можете вставить первую строку, как показано ниже, чтобы остановиться, когда аргумент достигнет нуля:
(defun fac (n)
(if (= n 0) (edebug))
(if (< 0 n)
(* n (fac (1- n)))
1))
Когда определение fac инстументировано, и функция вызвана, вызов edebug действует как точка останова. В зависимости от режима выполнения, Edebug останавливается или приостанавливается там.
Если ни один инстументированный код не выполняется, когда вызывается edebug, эта функция вызывает debug.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Source-Breakpoints.html