Как отключить все точки останова сразу в отладчике 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_disablegdb.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
Другие вопросы по тегам