跳转到主要内容

将Python线程名称传播到系统线程名称的补丁

项目描述

namedthreads

这是一个将Python中设置的线程名称传播到系统的漏洞。

警告: 这仅用于测试/调试目的。请不要在生产环境中运行。

问题

您可以在Python中这样命名线程

import threading

my_thread = threading.Thread(target=my_func, name="my-thread")

但是当运行pstop和类似的工具时,您会发现线程名称在这些工具中不可见,这使得线程错误难以调试。

解决方案

bpo-15500中的一个注释列出了一种使用ctypes通过libpthread.pthread_setname_np设置名称的猴子补丁。虽然这效果很好,但由于兼容性问题,它尚未包含在核心Python中。此模块将猴子补丁打包在一个易于安装的包中。

之前 之后

用法

安装

pip install namedthreads

手动修补

尽早在您的代码中运行此操作

import namedthreads
namedthreads.patch()

自动修补

受Graham Dumpleton的autowrapt启发,此模块可以自动激活。由于此方法具有狡猾的特性,它通过检查环境变量NAMEDTHREADS的存在来保护。只有当此环境变量设置时,才激活自动修补

NAMEDTHREADS=1 python myscript.py

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分发

namedthreads-1.0.tar.gz (3.7 kB 查看哈希值)

上传时间 源码

支持