尝试用pdb调试基于python的roguelike。我想弄清楚的是,函数handle_keys()像我所要求的那样返回0。我还有另一个不像预期的功能,所以我试图找出问题在哪里发生。应该发生的是: handle_keys()返回0,然后frag_grenade()执行一些操作。
我为pdb插入了一个跟踪,但我不确定这是否会显示handle_keys()是否返回0:
elif key.vk == libtcod.KEY_BACKSPACE:
game_state = 'playing'
pdb.set_trace()
return 0当我在游戏中点击backspace时,我得到了pdb的输出:
->报税表0
我不确定这是显示返回值还是只是显示下一行代码.
非常感谢!
发布于 2018-06-14 17:39:05
26.2.pdb - Python调试器-Python2.7.15文档
从运行中的程序闯入调试器的典型用法是插入 导入pdb;pdb.set_trace() 在要侵入调试器的位置。然后,您可以在此语句之后逐步遍历代码,,然后使用c命令继续运行,而不使用调试器。
箭头指向即将执行的当前行。
返回值的打印方式完全不同:
In [11]: def answer():
...: return 42
In [13]: pdb.runeval("answer()")
> <string>(1)<module>()->None
(Pdb) s
--Call--
> <ipython-input-11-22e067ec9c24>(1)answer()
-> def answer():
(Pdb) n
> <ipython-input-11-22e067ec9c24>(2)answer()
-> return 42
(Pdb)
--Return--
> <ipython-input-11-22e067ec9c24>(2)answer()->42
-> return 42
(Pdb)正如您所看到的,返回行被打印了两次--首先在执行之前,然后作为函数返回。第二次,它伴随着--Return--和位置行中的返回值。
https://stackoverflow.com/questions/50862946
复制相似问题