我知道 Python 源代码被编译成字节码,然后由 Python VM(假设 CPython)解释。如果我理解正确,这意味着 VM 解析字节码指令并决定(在运行时)应该相应地执行哪些 CPU 指令。
我的问题:
作为解释特定 Python 文件(.py)的结果,是否可以记录在您的机器上执行的实际 CPU 指令?我知道在.py 文件和 CPU 指令之间获得 1-1 的对应关系可能并不简单(甚至是可行的),但是你能得到的最接近的是什么?
更进一步:是否甚至可以记录与特定进程相对应的执行指令?
在 Linux 上使用strace
,它会显示任何程序(包括 python)进行的每个系统调用。在 Windows 上,您必须使用wt或Logger.exe跟踪所有库调用(不仅仅是系统)。
您可以使用像gdb
这样的调试器来实时查看机器代码,并且由于您有 CPython 源代码,更好的选择是使用调试符号编译它,然后在 C 调试器中运行它,这可以给你一个高级调用堆栈,这将更容易理解。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(82条)