gpt4 book ai didi

python - 查找threading.Lock的futex id

转载 作者:行者123 更新时间:2023-12-01 03:53:53 32 4
gpt4 key购买 nike

我想要检测一个大型 Python 项目,以便能够调试如下所示的生产问题:

23321 07:49:57.925037 futex(0x23b2c20, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
23321 07:50:12.435793 <... futex resumed> ) = 0

这里,一个线程在某个锁(或条件变量)上等待了 14.4 秒。

我不确定该锁是在 Python 代码中还是在某些第 3 方 C 扩展中创建的,但从统计角度来看,Python 是一个不错的猜测。

当我附加 strace 时,这个 futex 已经创建了。我怀疑它是在应用程序启动期间创建的。

我想查看 threading.Lock()threading.Condition() 对象并找出它们的底层 futex id。

至少我会记录这些 id,以便稍后,如果我必须跟踪正在运行的应用程序,我可以将我看到的 futex 调用解析为合乎逻辑的内容。

最佳答案

您可以通过rr记录程序执行情况,然后你可以像这样设置条件断点:

b futex if $rdi==0x23b2c20

关于python - 查找threading.Lock的futex id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37834039/

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