首页 / 知识
关于调试:有没有办法将调试器附加到多线程Python进程?
2023-04-14 10:34:00
Is there a way to attach a debugger to a multi-threaded Python process?我试图在锁定后修改多线程Python应用程序中的死锁。 有没有办法附加调试器来检查进程的状态? 编辑:我在Linux上尝试这个,但是如果有一个跨平台的解决方案那就太棒了。 毕竟是Python的:) 使用Winpdb。它是一个独立于平台的图形GPL Python调试器,支持通过网络进行远程调试,多线程,命名空间修改,嵌入式调试,加密通信,速度比pdb快20倍。 特征:
是的,gdb适用于较低级别的调试。 您可以使用thread命令更改线程。 例如
您还可以查看Python特定的调试器,如Winpdb或pydb。两个平台都独立。 您可以将调试器附加到多线程Python进程,但您需要在C级别执行此操作。要了解正在发生的事情,您需要使用符号编译Python解释器。如果你没有,你需要从python.org下载源代码并自己构建:
确保您的工作负载在该版本的解释器上运行。然后,您可以随时使用GDB附加到它。 Python人员在他们的Misc目录中包含了一个示例".gdbinit",它有一些有用的宏。但是对于多线程调试(!)来说它已经崩溃了。你需要替换这样的行
以下内容:
否则像
看看发生了什么。的种类。 您可以使用"pyo"宏解析对象的内容。克里斯在他的博客上有一些例子。 祝好运。 (为Dan的博客留出了一些重要信息,特别是线程修复!) 我在PyDev(Windows XP上的Eclipse)中调试多线程程序的经验是,使用thread.start_new_thread创建的线程无法挂钩,但是使用threading.Thread创建的线程可以被挂钩。希望这些信息有用。
如果你的意思是pydb,那就没办法了。在这方面做了一些努力: PyCharm IDE允许从4.0版开始附加到正在运行的Python进程。 这里描述了如何做到这一点。 pdbinject允许您将pdb注入已经运行的python进程。 pdbinject可执行文件只能在python2下运行,但也可以注入python3。
您尝试使用什么平台?大多数调试器允许您使用进程ID附加到正在运行的进程。 编辑:我没有任何GNU调试器(GDB)的经验,这是跨平台的,但我发现这个链接,它可能会开始你在正确的道路上。它解释了如何添加调试符号(方便读取堆栈跟踪)以及如何指示gdb附加到正在运行的python进程。 |
最新内容
相关内容
linux进程运行命令?
linux进程运行命令?,系统,工作,状态,地址,信息,进程,基础,命令,管理,软件,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作命linux多线程下载命令?
linux多线程下载命令?,软件,工具,平台,中心,系统,代理,网络,网站,手机,官方网站,从linux服务器中下载或上传文件wget是linux下一个从网络上自linux下看进程命令行?
linux下看进程命令行?,系统,情况,软件,服务,状态,名称,环境,进程,命令,数据,哪些命令可以查看进程在 Linux 系统中,我们可以使用 ps 命令来查看linux进程与磁盘命令?
linux进程与磁盘命令?,管理,系统,信息,情况,基础,增长,单位,地址,发行,命令,Linux系统中进行磁盘管理的常用命令有哪些?分别有什么功能1、Linulinux的进程管理命令?
linux的进程管理命令?,系统,实时,工作,管理,命令,地址,名称,进程,服务,基础,linux结束进程用什么命令1、【答案】:C 在Linux系统中,可以使用killlinux端口进程命令?
linux端口进程命令?,系统,情况,地址,网络,信息,状态,灵活,工具,端口,命令,如何查看linux端口被哪个进程占用netstat: 可以列出系统上所有的网络linux进程的命令行?
linux进程的命令行?,地址,工作,系统,信息,命令,管理,名称,进程,目录,服务,linux查看进程命令1、linux 下查看进程可以使用的命令:ps命令查找与linux当前进程命令?
linux当前进程命令?,系统,信息,工作,状态,命令,进程,情况,地址,软件,实时,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux查看多线程命令?
linux查看多线程命令?,系统,第一,线程,地址,数据,进程,命令,名称,软件,情况,如何查看linux服务器的cpu数量,内核数,和cpu线程数如何查看linuxlinux下杀进程命令?
linux下杀进程命令?,系统,管理,进程,命令,名称,代码,终端,结束,指令,信号,Linux里面杀掉进程命令是什么?1、linux杀死进程一共分为4步,具体操作linux关于的进程命令?
linux关于的进程命令?,系统,进程,管理,命令,名称,代码,软件,信息,定期,状态,linux结束进程用什么命令【答案】:C 在Linux系统中,可以使用kill命linux终止进程命令键?
linux终止进程命令键?,系统,管理,进程,软件,暂停,工具,命令,代码,名称,传播,linux系统中挂起操作和强制结束操作(后台运行程序方法)1、结束进