2016-08-19 6 views
1

gdb를 사용하여 ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.html에 설명 된대로 중단 점을 비활성화 할 수 있습니다. 문서에서 모든 중단 점을 해제하려면 중단 점 목록없이 disalbe 만 지정하면됩니다. 하지만 내 ddd (데이터 디스플레이 디버거)에서는 작동하지 않습니다. 내가 어떻게 해? 또는 범위를 어떻게 지정할 수 있습니까? (1-10 시도했지만 작동하지 않았다).DDD 디버거 (pydb 모드)에서 모든 중단 점을 한 번에 비활성화하는 방법

EDIT : 명령어 ddd -pydb prog.py arg1 arg2..을 사용하여 파이썬 디버깅을 위해 DDD를 사용 했으므로 gdb 명령이 아닌 실제로 pydb 명령이었습니다. 대답에 대한 주석을보고 나중에 pydb의 경우 인수가없는 delete 명령은 모든 중단 점을 삭제한다는 것을 알았습니다. 모든 중단 점을 비활성화하려면 gdb.py를 수정하고 아래 주석을 확인해야합니다.

+0

내가 본 : 더 인수가 해제 부여되지 않은 경우, 모든 중단 점을 사용하지 않도록 당신이 (가 많은 시스템에 /usr/share/pyshared/pydb/에서 찾을 수있다) pydb의 소스 코드를 편집하고 (gdb.py에서) do_disable을 변경할 수 있습니다 'disable 1 2 3 4 5 6 7 8 9'이 작동합니다. –

+0

그것은 나를 위해 작동합니다 (ddd 3.3.12, gdb 7.7.1). 어떤 버전을 실행하고 있습니까? –

+0

GNU DDD 3.3.12 (x86_64-redhat-linux-gnu) 및 GNU gdb (GDB) Red Hat Enterprise Linux (7.2-83.el6). 아마도 GDB 버전 차이일까요? –

답변

1

pydb가 지원하는 명령은 gdb의 명령과 유사하지만 모두 동일하지는 않습니다. 현재, pydb의 비활성화 명령은 인수가 제공되지 않으면 오류를 제공합니다.

*** 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 
+0

고마워, 내가 지금 편리하게 사용하고있어. :) –