【发布时间】:2012-12-19 11:59:47
【问题描述】:
在跟踪函数内部,调试函数调用时,是否有可能以某种方式检索调用表达式?
我可以从回溯对象中获取调用行号,但是如果该行上有多个函数调用(可能是同一个函数)(例如,作为更大表达式中的子表达式),那么我如何知道这个调用来自哪里?即使从源代码行开始的偏移量我也会很高兴。
traceback.tb_lasti 似乎提供了更详细的上下文(尝试的最后一个字节码的索引)——是否有可能将字节码连接到其确切的源范围?
编辑:澄清一下——我需要从调用源代码行中提取特定的(子)表达式(调用点)。
【问题讨论】:
-
@Alexey:很遗憾没有,源代码对我来说不够精确,我需要提取特定的子表达式。
-
也许如果您粘贴源代码行、相关字节码和您正在调试的指令,我们可以帮助您确定该指令在源代码中的位置。
-
@TokenMacGuy:我没有调试任何特定代码,我想在 Python 跟踪工具之上创建一个可视化表达式调试器。