gpt4 book ai didi

python 的 sys.settrace 不会跟踪内置函数

转载 作者:太空狗 更新时间:2023-10-30 01:23:03 26 4
gpt4 key购买 nike

<分区>

我一直在使用 sys.settrace 函数为我的程序编写一个跟踪器,它工作得很好,除了它似乎没有被内置函数调用,比如 open('filename.txt') .这种行为似乎没有记录在案,所以我不确定我是否做错了什么或者这是否是预期的行为。我正在使用来自 here 的 Doug Hellmann 的“trace_calls_and_returns”代码作为我的追踪功能。

如果我无法使用 settrace 执行此操作,是否有任何方法可以跟踪对 open() 的调用?我不想使用 Linux 的 strace,因为它会运行整个程序(而不仅仅是我想跟踪的部分)并且不会显示我的 python 行号/文件名等。我考虑的另一个选择是通过包装器猴子修补开放功能,例如:

import traceback, __builtin__
def wrapped_open(*arg,**kw):
print 'open called'
traceback.print_stack()
f = __builtin__.open(*arg,**kw)
return f
open = wrapped_open

但这对我来说似乎很脆弱。

有人可以建议更好的方法吗?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com