【发布时间】:2010-10-26 13:21:36
【问题描述】:
今天早些时候,我asked a question 关于 Python 处理某些类型的循环的方式。其中一个答案包含我的示例的反汇编版本。
我想知道更多。如何反汇编自己的 Python 代码?
【问题讨论】:
标签: python debugging reverse-engineering
今天早些时候,我asked a question 关于 Python 处理某些类型的循环的方式。其中一个答案包含我的示例的反汇编版本。
我想知道更多。如何反汇编自己的 Python 代码?
【问题讨论】:
标签: python debugging reverse-engineering
查看dis 模块:
def myfunc(alist):
return len(alist)
>>> dis.dis(myfunc)
2 0 LOAD_GLOBAL 0 (len)
3 LOAD_FAST 0 (alist)
6 CALL_FUNCTION 1
9 RETURN_VALUE
【讨论】:
除了使用dis作为模块,你还可以作为命令行工具运行它
例如,你可以在windows上运行:
c:\Python25\Lib\dis.py test.py
并将反汇编结果输出到控制台。
【讨论】:
使用 Python 标准库中的 dis 模块(import dis 例如在交互式解释器中,然后使用 dis.dis 您关心的任何函数!-)。
【讨论】: