Как отключить все точки останова сразу в отладчике DDD (режим pydb)
Используя gdb, мы можем отключить точки останова, как описано на ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.html. На документе, чтобы отключить все точки останова, которые он говорит, чтобы дать только disalbe
без списка точек останова. Но в моем DDD (data-display-debuger) это не работает. Как мне это сделать? Или как я могу указать диапазон? (Я пытался 1-10, но не работал).
РЕДАКТИРОВАТЬ: я использовал DDD для отладки Python с помощью команды ddd -pydb prog.py arg1 arg2..
так что на самом деле это была команда pydb, а не команда gdb. Смотрите комментарии для ответа, и позже я обнаружил, что для pydb, команда delete
без каких-либо аргументов удаляет все точки останова. Для отключения всех точек останова, вы должны изменить gdb.py и увидеть комментарии ниже.
1 ответ
Команды, поддерживаемые pydb, аналогичны командам в gdb, но они не являются одинаковыми. В настоящее время команда отключения pydb выдает ошибку, если аргументы не указаны. Вы можете редактировать исходный код pydb (его можно найти в /usr/share/pyshared/pydb/
на многих системах) и изменить do_disable
(в gdb.py
) так, что если аргументы для отключения не заданы, будут отключены все точки останова:
*** gdb.py.orig 2009-11-17 17:00:21.000000000 -0800
--- gdb.py 2016-08-20 17:12:09.561338798 -0700
***************
*** 1067,1069 ****
if len(args) == 0:
! self.errmsg('No breakpoint number given.')
return
--- 1067,1071 ----
if len(args) == 0:
! for bp in bdb.Breakpoint.bpbynumber:
! if bp:
! bp.disable()
return