PDB command <-> variable clashes

Jon Redgrave jredgrave at capisco.com
Sat Oct 8 16:57:09 EDT 2011


On Oct 8, 1:18 pm, Kääriäinen Anssi <anssi.kaariai... at thl.fi> wrote:
> I am currently debugging the django test cases, and there are a lot of variables names like w, q, where, condition and so on. Especially variables like w, q, c, r are really annoying. It would be cool if pdb would detect a clash and in that case ask you what to do. Nothing more annoying than stepping through the code, finally finding the problematic place and then trying to find out what c.somevar contains... I am using Python 2.6.
>
> Is there some way to do this? My googling didn't turn out anything. Or is it recommended to use something else instead of pdb?
>
> Thank you for your time,
>  - Anssi Kääriäinen

Its not perfect but I use in sitecustomize

def precmd(self,l):
    if '.' in l:
        if l[:1]!='!':l='!'+l
        return l
    if l in self.curframe.f_locals:
        return '!'+l
    if l.startswith('@'): return l[1:]
    return l
import pdb
pdb.Pdb.precmd = precmd

What this does is
q ->variable q if it exists else quit command
@q ->always quit
!q ->always variable

HTH
   Jon



More information about the Python-list mailing list