VS调试:函数断点与数据断点

2023-11-13

断点,是Debug过程中最常用的功能。
关于断点VS还有很多高级功能,本文使用的是VS2017,介绍函数断点与数据断点的使用场景以及使用方法。

1.普通断点

普通断点是最常接触的断点,VS中,在代码行左边栏灰色区域点击,或者把光标放在某代码行按下F9即可设置断点。
这种断点,其实更多可能是设置在某个语句上,可以执行这句语句前所有代码,运行到改行停止且未执行该行代码。进入调试后,还可以选择逐语句(快捷键F10),逐过程(快捷键F11)调试。
停滞在语句上,意味着要对某行语句有特殊的观察目的或是明确此语句可能是bug出现的地方,才能够明确的把断点设置在此断点上,但这种调试的方法效率十分低下,对于每个语句都需要有把握才行。

以下断点只有进入调试后才能进行设置:调试->新建断点->函数断点或数据断点

2.函数断点

使用方法

顾名思义,函数断点,按下快捷键Ctrl+B可以进入窗口,输入想要调试的函数名,当点击确定后调试,则每次调试遇到进入函数时,都会击中断点。
要注意的是,断点仍然只能得到在该函数运行前的全局变量以及参数值。

在这里插入图片描述
另外,可以看到函数名下有条件断点,有三种类型的条件断点。其中条件表达式断点,此条件断点可以设置运行函数前存在的所有变量条件作为约束,当满足此条件时停止。
除此外,还有满足命中次数断点以及筛选器断点(多线程使用)。
命中次数:比如你怀疑程序出错点发生在 N 次循环之后或者某些次循环,那么可以设置循环语句内的命中次数,让它在某些次或者某次循环停下来,而不是每次都停下来。
筛选器
筛选器是用来限制断点命中时所在的设备、进程和线程。比如,在一个多线程的程序中,你不必手动 GetThreadId,可以通过筛选器,设置让它只在某线程中执行到此处时停下来。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

应用场景

我们在断点的窗口可以看到所设置的断点,另外还可以看到当前函数的数值。
在这里插入图片描述

  1. 当函数传入参数错误,可以设置函数断点,以参数正确的否命题作为条件,则可以进入参数状态错误的时候进行调试,打印所需要数据信息,追溯错误发生的源头。
  2. 查看某函数的作用以及测试某函数的正确性时,可以设置函数断点查看数据变化情况。

3.数据断点

使用方法

数据断点的意义,是让程序在某处地址指定字节发生改变的时候中断下来。数据断点同样有条件断点选项。
在这里插入图片描述

使用的话,可以用&参数名的方式,也可以调试时,监视所需参数,加&查看当前变量的地址,然后在该栏下输入地址。

在这里插入图片描述

应用场景

用于检测任意变量,包括类中或者结构体中某个成员变量的值发生了变化,如果此时设置了数据断点,只要该变量的值发生了变化就会触发数据断点,导致程序中断。用于Debug时,查找莫名其妙改变值的变量,用于锁定隐藏bug,以及通过堆栈信息梳理逻辑漏洞。

本文参考:
VS教程之断点

文章里面还有用调用堆栈以及反汇编的方法设置代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS调试:函数断点与数据断点 的相关文章

随机推荐

  • 【论文笔记】nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation

    nnU Net 一种基于深度学习的自配置生物医学图像分割方法 Results nnU Net的自动配置基于将领域知识提取成三个参数组 固定的 基于规则的和经验的参数 收集不需要在数据集之间进行调整的设计决策 并确定稳健的通用配置 fixed
  • mysql一行逗号分割的数据分解为多行

    在 MySQL 中 你可以使用函数 REPLACE 和 SUBSTRING INDEX 来将一行逗号分隔的数据分解为多行 例如 假设你有一个表 其中包含一列 items 该列包含逗号分隔的字符串 如下所示 id items 1 item1
  • 机器学习笔记 - 【机器学习案例】在表格数据上应用高斯混合模型GMM和网格搜索GridSearchCV提高分类精度

    1 需求及数据集说明 这是一项二分类任务 评估的是分类准确性 正确预测的标签百分比 训练集有1000个样本 测试集有9000个样本 你的预测应该是一个9000 x 1的向量 您还需要一个Id列 1到9000 并且应该包括一个标题 格式如下所
  • 【学习笔记】数据存储的顺序与对齐_计算机原理

    学习笔记 数据存储的顺序与对齐 计算机原理 开了个新坑 做一个计算机原理的读书笔记 自用 仅做分享 数据存储的顺序 介绍了机器端模式 数据存储的对齐 这里介绍的是 数据结构的存储方式是根据给定的字节和自己本身的字节做对齐的 比如 4 4 4
  • 浅谈SSM框架下实现简单登录界面

    SSM框架搭建结果 Login jsp
  • C:\Python27\python.exe: can't open file '2.py': [Errno 2] No such file or directory

    最近开始学习了 笨方法学python 在练习的第一个程序就出现了如下错误 C Python27 python exe can t open file 2 py Errno 2 No such file or directory 刚开始自己找
  • 学习日记——DAC实验(2020.2.6)

    区分ADC和DAC ADC 输入 模拟量转到数字量输入 DAC 输出 数字量转到模拟量输出 概念 数模转换器 又称D A转换器 简称DAC 它是把数字量转变成模拟的器件 D A转换器基本上由4个部分组成 即权电阻网络 运算放大器 基准电源和
  • Centos MySql安装,保姆级安装教程

    Centos MySql安装 保姆级安装教程 1 删除原有的mariadb 不然mysql装不进去 查询MAriaDB命令 rpm qa grep mariadb 删除 rpm e nodeps mariadb libs 5 5 60 1
  • pip与conda有什么区别,常用命令有哪些?

    文章目录 pip与conda有什么区别 常用命令有哪些 1 pip与conda 2 pip常用命令 3 conda常用命令 pip与conda有什么区别 常用命令有哪些 1 pip与conda pip是Python 包管理工具 该工具提供了
  • 关于Linux/Ubuntu重置用户名密码

    Step1 重启 往死里按Esc或等启动后嗯Enter Step2 成功后会进入如下界面 这一步后如果你已经知道root密码 请直接跳到Step8 Step3 在菜单Ubuntu这摁 e 进入编辑模式 对标出行 做出如下修改 Step4 根
  • 零信任架构简介

    2021 年被誉为网络安全元年 种种因素极大的驱动了零信任成为安全新风口 零信任也无疑成为了整个安全圈包括网络安全领域最热门的词汇之一 什么是零信任 零信任既不是单一的产品 也不是单一的技术 它是一种安全理念以及安全架构 核心原则是持续验证
  • SV中program & module

    相同之处 1 和module相同 program也可以定义0个或多个输入 输出 双向端口 2 一个program块内部可以包含0个或多个initial块 generate块 specparam语句 连续赋值语句 并发断言 timeunit声
  • GPS 的PPS

    校准RTC时间的方法 首先需要一个准确的外部信号 比如GPS来的秒信号 或者其它很准确的信号 然后通过定时器来测量RTC的晶振误差 然后再对该误差进行校准 面接收机GPS的秒脉冲精度 也就是相邻两个秒脉冲上升沿的间隔精度能到100ns 授时
  • HTML+CSS+JS制作【飞机大战】小游戏(键盘版和鼠标版)

    文章目录 一 效果演示 设计思路 二 鼠标版飞机大战代码展示 1 HTML结构代码 2 CSS样式代码 3 JavaScript代码 js js文件 plane js文件 三 键盘版飞机大战代码展示 1 HTML结构代码 2 CSS样式代码
  • eclipse下maven打包失败(Please ensure you are using JDK 1.4 or above and not ......

    在eclipse下用maven编译时 可能会失败 报出以下提示 ERROR Unable to locate the Javac Compiler in ERROR C Program Files Java jre1 8 0 72 lib
  • 【ABviewer从零开始教学查看器篇①】3D查看器和3D剖面板

    ABViewer是一款高质量 高效率 低成本的多功能设计及工程文档管理工具 能为您提供全面的专业的浏览及编辑功能 同时支持30多种光栅和矢量图形格式 在小编看来 ABViewer是一款非常简单且实用的CAD文档查看与编辑器 对于使用小白可能
  • 华为云计算相关知识点

    云计算离不开网络基础设施 云计算中的网络分为不同的平面 管理平面 负责整个系统的监控 操作维护 系统配置 系统加载 告警上报 和虚拟机管理 创建 删除虚拟机 虚拟机调度 等 存储平面 主要为存储系统提供通信平面 并未虚拟机提供存储资源 用于
  • 你的数据隐私值多少钱?也许已有答案了

    全文共6032字 预计学习时长12分钟 图片来源 Timo Lenzen 对于一些大型科技公司来说 这一年侵犯用户隐私付出的代价变高了 未来还会更高吗 今年7月 脸书在受到有关泄露数亿用户数据隐私的指控后 同意缴纳50亿美元的罚金 同一周内
  • 【TOOLS】Python 3利用SMTP进行邮件Email自主发送

    作者 Che Hongshu 来源 AI蜗牛车 ID AI For Car 一 前言 利用Python进行邮件的发送 这个功能自我感觉主要应用于检测或者报告之类 我两次运用这个功能 第一次用在主要发送实时的数据给一个邮箱 第二次用是检测挂在
  • VS调试:函数断点与数据断点

    断点 是Debug过程中最常用的功能 关于断点VS还有很多高级功能 本文使用的是VS2017 介绍函数断点与数据断点的使用场景以及使用方法 1 普通断点 普通断点是最常接触的断点 VS中 在代码行左边栏灰色区域点击 或者把光标放在某代码行按