Все точки останова в определении забываются каждый раз, когда вы
переинструментируете его. Если вы хотите создать точку останова, которая
не будет забыта, вы можете написать точку останова в исходном
коде, которая представляет собой просто вызов функции edebug
в вашем исходном коде. Разумеется, вы можете сделать такой вызов условным.
Например, в функции fac вы можете вставить первую строку,
как показано ниже, чтобы остановиться, когда аргумент достигнет нуля:
(defun fac (n)
(if (= n 0) (edebug))
(if (< 0 n)
(* n (fac (1- n)))
1))
Когда определение fac инструментируется и функция вызывается,
вызов edebug действует как точка останова. В зависимости от
режима выполнения Edebug останавливается или приостанавливается в этой точке.
Если при вызове edebug не выполняется инструментированный
код, эта функция вызывает debug.