if(some condition): pdb.set_trace()
代码中的错误是在大量迭代之后出现的……很难使用print等进行调试.
当条件命中时我能够打印东西,但我想设置brk-pt.
– 编辑 –
实际代码:
import pdbif (node_num == 16): print node_num pdb.set_trace()解决方法 我不确定为什么你的代码不能正常工作,但是你能做的就是在你的本地机器上,为你的最小例子创建一个新文件,看看你能做你想做的事情
import pdbfor node_num in range(50): if node_num == 16: print(node_num) pdb.set_trace()
现在运行它:
16> /tmp/tmp.py(3)<module>()-> for node_num in range(50):(Pdb) p node_num16
正如您所看到的,这可以通过这个简单的示例按预期工作,由您决定如何使其适应您的代码,和/或弄清楚您对代码/环境做了哪些其他事情,阻止该提示出现.
或者,如果您有一个在异常中死亡的函数并且您想知道导致它的确切行,则应该使用post_mortem.用这个包装有问题的代码部分
try: problem_function()except Exception: # or the specific exception type thrown pdb.post_mortem() raise
post_mortem将做的是在发生异常的位置(特别是在该堆栈帧中)转储一个断点,这样就可以检查所有值,然后让你继续执行.但是我也在最后加注以允许异常继续正常,这是因为执行通常不会从它死亡的地方执行,而是由于post_mortem调用而暂停在该异常处理块.在检查出了什么问题之后,还可以放弃.
总结以上是内存溢出为你收集整理的python – 使用pdb的条件断点全部内容,希望文章能够帮你解决python – 使用pdb的条件断点所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)