问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/weixin_51899238/article/details/136502021

本文将详细介绍VSCode的调试功能和断点类型的使用,包括如何进入调试模式、断点的设置方法、调试工具的使用、变量监视以及不同类型的断点(记录点、触发式断点、条件断点、函数断点)的使用场景和具体操作。

如何进入调试模式

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

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

调试介绍

在如图所示的位置添加断点

这是个简单的人为制造除零异常的程序

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 时会中断,执行的第十次会中断

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

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

函数断点

专门用于给函数添加断点,无需在具体调用的地方添加
每次在调用函数时会自动中断
输入你想中断的函数名

同样你可以在函数断点上设置你想要的中断条件和命中次数

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号