8

的文档sys.settrace说它可以报告对 c 或内置函数的调用。当我尝试以下程序时,我希望看到一个c_call事件,但没有任何反应:

import sys

def tracer(frame, event, arg):
    print(frame, event, arg)
    return tracer

sys.settrace(tracer)

x = len([1,2,3])

有什么想法吗?

sys.settrace任何人都可以发布一个生成c_call事件的示例使用吗?

编辑:最初我用 Python 3.2 尝试过,但它没有给我任何事件。现在我用 Python 2.7 试了一下,它给了我两个call-s(不是c_call-s)。还是很奇怪。

4

1 回答 1

7

文档是错误的,c_call事件将永远不会发送到您的跟踪功能:http ://bugs.python.org/issue17799

于 2013-04-20T11:27:35.140 回答