vscode python 多进程,多线程,带参数调试

vscode python 多进程,多线程,带参数调试

多进程,多线程调试

高效的调试技巧可以快速找到程序中存在的问题。通常,我们可以在调试是暂停程序,查看变量等。vscode 的调试工具事实上已经提供了足够的支持。在安装完成 vscode 的 python 扩展(本文以版本v2022.4.1 为例)之后,默认的调试工具在默认状态下即已可以进行多进程和多线程调试。

此处所谓的默认调试工具是指 python 扩展中的 debugpy;默认状态是指不采用 launch.json 进行额外的配置, 而是采用默认按钮点击的方式(当然,并不推荐采用这个中默认形式,应为其灵活性不足,只是说其以满足要求)。
默认状态

如下面的简单例子。开了两个进程,一个进程死循环打印,另一个进程里开了一个线程打印主线程死循环加。

rom threading import Thread
from multiprocessing import Process
import time


def print_num(num):
    while 1:
        time.sleep(1)
        print(num)


def multithread_func():
    num = 2
    a = [num, ]
    thread = Thread(target=print_num, args=(a, ))
    thread.start()
    while 1:
        time.sleep(1)
        a[0] = a[0] + 1


def another_process(num):
    while 1:
        time.sleep(1)
        print(f"I'm the second, num is {num}.")


if __name__ == "__main__":
    from multiprocessing import Process
    process = [Process(target=multithread_func),
               Process(target=another_process, args=(2,)), ]
    [p.start() for p in process]
    [p.join() for p in process]

以如下方式(三个 time.sleep(1) 处)加入断点,点击相应的 Debug Python File,则在左侧可以找到对应的进程和线程的控制按钮。
加断点
call stack

带参数调试

对于带参数调试,则需要配置相应的 launch.json, 这个可以参见 vscode 官方的例子,此外其实还可以添加很多其他的选项,包括控制脚本的启动方式等。
在这里插入图片描述
最后提一下 justMyCode 选项, vscode 生成的默认 当前文件调试配置 是默认将该选项设置为 true 的。所以无法调试工程目录之外的文件,如环境中包含的库文件。可在 lauch.json 中将其设置为 false.

注意:启动 launch.json 配置的按钮在调试工具栏中,而不是原来的默认按钮

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值