简单聊聊VisualStudio的断点调试
这节聊聊如何使用VisualStudio进行断点调试。
在debug过程中,我们有时需要查看程序在运行到某一行代码时,上下文中的变量或者一些其他的数据是什么样的,我们就要设置断点(Breakpoint)。断点顾名思义,就是运行到打断点的这一行,程序就中断,暂停。下面就看看如何使用VisualStudio来断点调试C#代码。
如何断点:
在VS中,如何为代码设置断点呢,有这么两种形式:
第一个就是直接在想要断点的代码行,设置,断点位置如下图,鼠标点击代码行的最前头,出现红点即设置完成,对应的代码会出现红色背景(命中断点背景则是黄色)。
另一种方式就是将鼠标点击一下要断点的行,激活键入光标,再按F9即可。
(其实还有一种方式,没有什么具体的实用价值:在想断点的代码行右击鼠标弹出上下文菜单,选择插入断点即可。)
设置好断点后,就可以按F5或者点击启动即可开始调试代码,但注意启动模式要是Debug模式,Release是发布版本,不会命中断点。之所以我们能断点调试是因为在Debug模式下,代码在编译时会加入辅助元素,断点才会有效,发布版本在编译时不会加入这些辅助元素,所以断点是无效的。另外额外说明一点,如果已经调试完成,可以使用发布版本运行一次,发布版本因为是纯代码编译,运行性能要更好。
调试代码:
当运行到断点处时,程序会停下来,后续的代码都可以进行调试,调试分为逐语句和逐过程,逐语句就是一行一行的,遇到方法就跳转到方法内部,逐过程就是当遇到包含方法的代码不会进入方法内部。
命中断点后,将鼠标移动到变量上,就会弹出变量的当前值的窗口:
激活这个小窗口还可以更改变量的值。
如果要调试查看下一行代码,就可以按F10进行逐过程或者F11进行逐语句调试。
或者点击菜单栏中对应的按钮:
Continue是继续执行代码直到遇见下一个断点,后边的红色方框是停止程序运行,最后标记的三个不同方向的箭头则分别是逐语句,逐过程,和跳出正在执行的程序。
变量监视:
当命中断点后,vs窗口下方会自动启动几个窗口:
Autos可以自动显示断点处上下文中的变量及其值等信息。
Locals可以显示当前作用域中可以访问的所有变量信息。
Watch1可以自行添加要监视的变量,并且这个窗口可以添加多个。
条件断点:
我们可以为断点添加条件,这尤其适用于循环块中,比如用for循环5次,我们可以让其在循环值为3的时候停止,添加条件断点的方式就是移动鼠标到断点红点上,点击小齿轮,在弹出的框中设置即可:
断点操作:
我们可以设置在断点命中时执行向Output窗口输出自定义数据的操作:
在输入框中输入要输出的语句即可,用大括号包裹要输出的变量,下方可以选择命中时执行操作接着执行代码,也可以不选,不选就执行命中不继续执行了,这个看自己的需求。在输入框中输入要输出的语句即可,用大括号包裹要输出的变量,下方可以选择命中时执行操作接着执行代码,也可以不选,不选就执行命中不继续执行了,这个看自己的需求。
个人公众号,热爱分享,知识无价。

简单聊聊VisualStudio的断点调试的更多相关文章
- chrome developer tool—— 断点调试篇
断点,调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析.也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时 ...
- 转载|chrome developer tool—— 断点调试篇
断点,调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析.也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时 ...
- JavaScript调试技巧之断点调试
首先,在各个浏览器中,断点调试支持的最好的当然是Firefox,Firefox不仅可以使用Firebug调试页面js脚本,还可以用高级调试工具例如JavaScript Debugger (Venkma ...
- VisualStudio 断点调试详解
本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时 本文将会按照从简单到复杂, ...
- 【Android学习笔记】Android Studio简单断点调试
首先点击断点调试按钮运行App 启动之后,会弹出如下图的提示框,不要管,几秒之后这个弹框会自动消失,然后App会成功运行. 下面介绍一下断点调试的相关操作按钮对应的功能: 按钮1的功能:从当前断点跳到 ...
- 【转】说说如何使用unity Vs来进行断点调试
大家可以从这下载最新版的unity vs. UnityVs1.81下载 1. 安装unity vs.首先我们打开我们下载的unity vs.然后就会看见里面有3个文件,我们双击UnityVS 2 ...
- 说说如何使用unity Vs来进行断点调试
转载自:http://dong2008hong.blog.163.com/blog/static/4696882720140293549365/ 大家可以从这下载最新版的unity vs. Unity ...
- 2018-8-10-VisualStduio-打断点调试和不打断点调试有什么区别
title author date CreateTime categories VisualStduio 打断点调试和不打断点调试有什么区别 lindexi 2018-08-10 19:16:52 + ...
- 【转】使用Fiddler进行HTTP断点调试。
这是Fiddler又一强大和实用的工具之一.通过设置断点,Fiddler可以做到: 1. 修改HTTP请求头信息.例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到 ...
随机推荐
- 攻防世界 reverse 进阶 notsequence
notsequence RCTF-2015 关键就是两个check函数 1 signed int __cdecl check1_80486CD(int a1[]) 2 { 3 signed int ...
- 全量同步Elasticsearch方案之Canal
一.前言 Canal 是阿里的一款开源项目,纯 Java 开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了 MySQL(也支持 mariaDB). Canal 除了支持 b ...
- Netflix业务运维分析和总结
目录 Netflix工作环境的分析和思考 为什么Netflix会做得如此极致? 海量业务规模下的技术架构和挑战 更加合理的组织架构和先进的工具体系及理念 自由与责任并存的企业文化 当前问题: 精选提问 ...
- 全网最详细的Linux命令系列-nl命令
nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...
- [模拟]P1046 陶陶摘苹果
陶陶摘苹果 ## 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试 ...
- 锋利的NodeJS之NodeJS多线程
最近刚好有朋友在问Node.js多线程的问题,我总结了一下,可以考虑使用源码包里面的worker_threads或者第三方的模块来实现. 首先明确一下多线程在Node.js中的概念,然后在聊聊work ...
- 一文搞懂MySQL体系架构!!
写在前面 很多小伙伴工作很长时间了,对于MySQL的掌握程度却仅仅停留在表面的CRUD,对于MySQL深层次的原理和技术知识了解的少之又少,随着工作年限的不断增长,职场竞争力却是不断降低的.很多时候, ...
- 201871030139-于泽浩 实验二 个人项目D{0-1} KP
201871030139-于泽浩 实验二 个人项目D{0-1} KP 项目 内容 课程班级博客连接 2018级卓越班 这个作业要求连接 软件工程个人项目 我的课程学习目标 (1)掌握软件项目个人开发流 ...
- Dynamics CRM安装教程四:DNS配置
在为MS CRM 配置Claims-based认证之前,你需要在域控服务器的DNS中添加一些记录,来解析CRM的各个断点,添加內容如下(本次环境全部安装在一台机子中): AD FS 服务器(例: ad ...
- Visual Studio 2015 无法加载.Net FrameWork4.6.2
默认的VS2015是没有.Net Framework4.6.2的 需要我们去到微软官网下载对应的.NET Framework 4.6.2的安装包 安装包分两种,一种是应用级别的还一种是开发级别的,如果 ...