Skip to content Skip to sidebar Skip to footer

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?"