In Pdb (python Debugger), Can I Set A Breakpoint On A Builtin Function?
I want to set a breakpoint on the set.update() function, but when I try, I get an error message. Example: ss= set() ss.update('a') Breakpoint: b set.update b ss.update Errors: Th
Solution 1:
Thanks! Using @avasal's answer and Doug Hellmann's pdb webpage, I came up with this:
Since I was trying to catch set.update, I had to edit the sets.py file, but that wasn't enough, since python was using the builtin set class rather than the one I edited. So I overwrote the builtin sets class:
import sets
locals()['__builtins__'].set=sets.Set
Then I could set conditional break points in the debugger:
b set.update, iterable=='a'#successful
b set.update, iterable=='b'#won't stop for ss.update('a')
My entire example file looks like this:
import pdb
import sets
locals()['__builtins__'].set=sets.Set
pdb.set_trace()
ss = set()
ss.update('a')
print"goodbye cruel world"
Then at the debugger prompt, enter this:
b set.update, iterable=='a'
Hope this helps others too.
Post a Comment for "In Pdb (python Debugger), Can I Set A Breakpoint On A Builtin Function?"