18.3.5 使用反汇编调试
调试一个异常时,有时要查看是哪个字节码带来了问题,这可能很有用。要对一个错误周围的代码反汇编,有多种方法。第一种策略是在交互式解释器中使用dis()报告最后一个异常。如果没有向dis()传入任何参数,那么它会查找一个异常,并显示导致这个异常的栈顶元素的反汇编结果。
行号后面的–>指示了导致错误的操作码(opcode)。由于没有定义i变量,所以无法将与这个名关联的值加载到栈中。
程序还可以打印一个活动traceback的有关信息,将它直接传递到distb()。在下面的例子中,有一个DivideByZero异常;不过由于这个公式有两个除法,所以可能不清楚哪一部分为0。
#!/usr/bin/env python3
# encoding: utf-8
i = 1
j = 0
k =</