2016-08-19 22 views
1

gdbを使用して、ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.htmlで説明したようにブレークポイントを無効にすることができます。文書上で、すべてのブレークポイントを無効にするには、ブレークポイントリストなしでdisalbeとするだけです。しかし、私のddd(data-display-debuger)では動作しません。どうしたらいいですか?または、どのように範囲を指定できますか? (私は1-10を試みたが、うまくいかなかった)。DDDデバッガ(pydbモード)ですべてのブレークポイントを一度に無効にする方法

EDIT:コマンドddd -pydb prog.py arg1 arg2..を使用してPythonデバッグにDDDを使用していたので、実際にはgdbコマンドではなくpydbコマンドでした。答えのコメントを参照してください。そして、後でpydbの場合、引数なしのdeleteコマンドはすべてのブレークポイントを削除します。すべてのブレークポイントを無効にするには、gdb.pyを変更し、下記のコメントを参照する必要があります。

+0

を私は見ました'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の無効化コマンドは引数が与えられていないとエラーを返します。何も引数が無効に与えられていない場合、それはすべてのブレークポイントを無効にするように、あなたはpydbのソースコードを編集します(それは多くのシステム上で/usr/share/pyshared/pydb/で見ることができる)及び(gdb.py中)do_disableを変更することができます。

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

ありがとう、私はそれを今便利に使用しています.. :) –

関連する問題