Python的sys.settrace不会创建c_call事件

时间:2013-04-19 23:51:33

标签: python debugging

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)。仍然很奇怪。

1 个答案:

答案 0 :(得分:6)

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