すべてのコマンドを入力した後、python pdbで「l」の出力を表示する方法

StackOverflow https://stackoverflow.com/questions/602599

  •  03-07-2019
  •  | 
  •  

質問

対話型デバッグセッションで入力するすべてのコマンドの後に、python pdb 'l'コマンドの出力を画面に出力したいと思います。

これを行うためにpython pdbをセットアップする方法はありますか?

役に立ちましたか?

解決

これを行う1つの方法は、お気に入りのコマンドをエイリアスしてコマンドを実行してからlを実行することです。

e.g。

(Pdb) alias s step ;; l
(Pdb) s
> /usr/lib/python2.5/distutils/core.py(14)<module>()
-> from types import *
 9      # This module should be kept compatible with Python 2.1.
10      
11      __revision__ = "$Id: core.py 38672 2005-03-20 22:19:47Z fdrake 
alias s step ;; l
quot; 12 13 import sys, os 14 -> from types import * 15 16 from distutils.debug import DEBUG 17 from distutils.errors import * 18 from distutils.util import grok_environment_error 19

〜/ .pdbrcにエイリアスを追加して、毎回エイリアスを取得できます:

<*>

他のヒント

';;'コマンドの分離を許可


[crchemist@test tmp]$ python t.py
> /home/crchemist/tmp/t.py(7)()
-> a()
(Pdb) p a ;; l
function a at 0xb7e96df4
  2         b = 49 + 45
  3         v = 'fff'
  4         return v
  5
  6     import pdb; pdb.set_trace()
  7  -> a() [EOF]
(Pdb) s ;; l
--Call--
> /home/crchemist/tmp/t.py(1)a()
-> def a():
  1  -> def a():
  2         b = 49 + 45
  3         v = 'fff'
  4         return v
  5
  6     import pdb; pdb.set_trace()
  7     a() [EOF]
(Pdb) s ;; l
> /home/crchemist/tmp/t.py(2)a()
-> b = 49 + 45
  1     def a():
  2  ->     b = 49 + 45
  3         v = 'fff'
  4         return v
  5
  6     import pdb; pdb.set_trace()
  7     a() [EOF]
(Pdb)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top