vscode调试教程和断点类型的介绍

如何进入调试模式

1.点击如下图标,或者按下Ctrl+Shift+D即可跳转到该窗口,点击运行和调试即可开始调试
在这里插入图片描述
2.或者点击运行在这里选择调试,可以使用快捷键F5直接开启调试
在这里插入图片描述
如果你不想使用调试而是直接运行可以点击右侧的箭头
在这里插入图片描述

断点

点击代码左侧的编辑器的侧栏来设置断点,或者使用快捷键F9
在这里插入图片描述

在调试的时候必须要有断点,程序才能停下(或者程序出现错误,会在错误的地方停下)

调试介绍

在如图所示的位置添加断点
在这里插入图片描述
这是个简单的人为制造除零异常的程序

import numpy
import random
def div(data):
    for i in data:
        temp = 100/i

if __name__ == '__main__':
    data = list(numpy.random.rand(100))
    data[random.randint(0, 99)] = 0
    div(data)

点击运行和调试(或者按下F5
选择Python Debugger
在这里插入图片描述

调试工具

屏幕上侧出现了一行工具栏
在这里插入图片描述
依次为
在这里插入图片描述

  1. 继续/暂停 F5: 控制调试程序的运行和停止,点击运行后会继续运行直到遇到下一个断点
  2. 逐过程 F10: 会一行一行运行,如果遇到了函数不会进入而是直接跳过
  3. 单步调试 F11: 也是一行行运行,但是遇到了函数会进入函数体
  4. 单步跳出 Shift+F11: 如果在函数体或子例程里面,会执行完后面的所有代码
  5. 重新启动Ctrl+shift+F5:重新启动调试程序
  6. 停止 Shift+F5: 停止调试

变量监视

你可以在右侧看到此时的局部变量Locals和全局变量Globals
在这里插入图片描述
安装jupyter插件
在这里插入图片描述
随后你可以在数据查看器中查看数值
在这里插入图片描述
在这里插入图片描述

监视数据

你可以右键将你关心的数据添加到监视中
在这里插入图片描述
随后在每一次运行的时候更新,监视的数据也会更新方便你查看
在这里插入图片描述
添加表达式
在这里插入图片描述
你可以在表达式中键入你关心的值,例如我关心i是否等于0
在这里插入图片描述

不同的断点

记录点

记录点在调试的时候不会停住,而是会在调试控制台打印输出你的消息

右键可以添加记录点
在这里插入图片描述
或者在此处添加
在这里插入图片描述
可以在此处填写你想输出的消息,{}内可以添加你想打印的代码内容
在这里插入图片描述
在这里插入图片描述
可以在下方的调试控制台看到你的日志输出
在程序出现问题的时候你想知道某些值的情况下很有用
在这里插入图片描述

触发式断点

此断点不会直接启用而是在你选定的断点触发后才会启用

在这里插入图片描述
在此处选择你想等待的断点
在这里插入图片描述
例如我这个斐波那契数列的例程
在这里插入图片描述

def fibonacci(n):
    fib_sequence = [0, 1]  # 前两个斐波那契数列的值
    if n <= 0:
        return "请输入一个正整数"
    elif n == 1:
        return [0]
    elif n == 2:
        return fib_sequence  
    for i in range(2, n):
        next_number = fib_sequence[-1] + fib_sequence[-2]
        fib_sequence.append(next_number)
    return fib_sequence
   
if __name__ == "__main__":
    num = int(input("输入一个整数"))
    res = fibonacci(num)
    print(res)
    print("ok")

只有在我键入负数时第一个断点会触发,随后导致这个触发式断点触发启用
在键入正数时程序完全不会中断

条件断点

表达式型

只有在你编写的条件表达式为真时断点才会触发
在这里插入图片描述
例如在i==0的时候断点触发
在这里插入图片描述
启用调试的时候只有在i等于0时才会中断
在这里插入图片描述

命中次数式

只有在该段代码运行第多少次时才会中断
在这里插入图片描述
在这里插入图片描述
可以看到在调试时输出了9个hello后中断,且只会中断这一次
在这里插入图片描述

联合使用

在左下角的断点栏里面选择编辑条件即可
在这里插入图片描述
你可以为一个断点同时使用上面的四种功能

  1. 表达式
  2. 命中次数
  3. 日志消息
  4. 触发式
    例如我添加上两种
    在这里插入图片描述
    i<5 时会中断,执行的第十次会中断

注意 如果你加上了记录点,如下所示

在这里插入图片描述
那么在调试的时候这个断点不会中断,而是只会在应该中断的时候在调试控制台打印记录消息
在这里插入图片描述

函数断点

专门用于给函数添加断点,无需在具体调用的地方添加
每次在调用函数时会自动中断
在这里插入图片描述
输入你想中断的函数名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同样你可以在函数断点上设置你想要的中断条件和命中次数
在这里插入图片描述

配置文件相关

调试库函数

在有时候你出现中断了,但是出错的地方不是你的代码,此时你看不到函数中的状态,因为vscode默认是不会进入系统函数的。或者说你想学一下某些库函数的写法,那么你可能需要这种方式
例如你想看一下json.loads的运行过程

import json

data = json.loads(1)
print(data)

默认的调试是不会进入的

接下来教你如何改变
在这里插入图片描述

选择第一个
在这里插入图片描述

还是第一个
在这里插入图片描述
这是默认的调试配置文件
在这里插入图片描述
增加上一行即可调试库函数了

"justMyCode": false

在这里插入图片描述
我们调试一下看看
可以看到这里有我们刚刚的配置显示,直接点箭头开始调试
在这里插入图片描述
点击单步调试
在这里插入图片描述

可以看到我们顺利的进入到了函数的执行过程
在这里插入图片描述

有些库函数是用c/c++编写的这样就不能对其进行这样的调试,例如print你就看不到他的过程

带参数的调试

使用下面的简单示例来讲一下带参数的调试, 这是deepseek生成的你不需要关心他的写法,我只想让你知道怎么把参数传给程序进行调试

import argparse
import math

def calculate_operations(a, b):
    """执行数学运算并返回结果"""
    results = {
        'sum': a + b,
        'difference': a - b,
        'product': a * b,
        'quotient': a / b if b != 0 else 'undefined',
        'power': math.pow(a, b),
        'logarithm': math.log(a, b) if a > 0 and b > 0 and b != 1 else 'undefined'
    }
    return results


if __name__ == '__main__':
        # 设置命令行参数解析
    parser = argparse.ArgumentParser(description='数学运算计算器')
    parser.add_argument('num1', type=float, help='第一个数字')
    parser.add_argument('num2', type=float, help='第二个数字')
    parser.add_argument('--verbose', '-v', action='store_true', help='显示详细输出')
    
    args = parser.parse_args()
    
    # 执行计算
    results = calculate_operations(args.num1, args.num2)
    
    # 输出结果
    if args.verbose:
        print("详细计算结果:")
        for op, result in results.items():
            print(f"{op:>12}: {result}")
    else:
        print(f"简略结果: 和={results['sum']}, 积={results['product']}")

这是执行的效果
在这里插入图片描述
点击调试
在这里插入图片描述
选择第二个即可
在这里插入图片描述
直接在输入框输入参数
在这里插入图片描述
你便能顺利的含参调试程序
在这里插入图片描述
这里举的是你第一次调试的情况
如果你按照我上面的调试库函数的操作生成了配置文件,那么可能不会跳出这个框
此时你可以点击添加配置
在这里插入图片描述
选择python调试程序
在这里插入图片描述
再选带参版本
在这里插入图片描述
可以看到多了一个配置
在这里插入图片描述
这样你就可以选择调试配置了
在这里插入图片描述
选择好你想要的配置点击绿色的箭头即可调试了
在这里插入图片描述
也许你的程序每次调试的参数不需要修改,你不想自己输入,你可以直接在配置文件里面写好
再添加一个配置
我将名字改成了固定参数,这个name你可以自由修改
然后在args里按顺序提供你的参数即可,注意要加上双引号

在这里插入图片描述
可以看到又多了一个选项固定参数,选择这个进行调试即可
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值