这节聊聊如何使用VisualStudio进行断点调试。

在debug过程中,我们有时需要查看程序在运行到某一行代码时,上下文中的变量或者一些其他的数据是什么样的,我们就要设置断点(Breakpoint)。断点顾名思义,就是运行到打断点的这一行,程序就中断,暂停。下面就看看如何使用VisualStudio来断点调试C#代码。

如何断点:

在VS中,如何为代码设置断点呢,有这么两种形式:

第一个就是直接在想要断点的代码行,设置,断点位置如下图,鼠标点击代码行的最前头,出现红点即设置完成,对应的代码会出现红色背景(命中断点背景则是黄色)。

   

另一种方式就是将鼠标点击一下要断点的行,激活键入光标,再按F9即可。

(其实还有一种方式,没有什么具体的实用价值:在想断点的代码行右击鼠标弹出上下文菜单,选择插入断点即可。)

设置好断点后,就可以按F5或者点击启动即可开始调试代码,但注意启动模式要是Debug模式,Release是发布版本,不会命中断点。之所以我们能断点调试是因为在Debug模式下,代码在编译时会加入辅助元素,断点才会有效,发布版本在编译时不会加入这些辅助元素,所以断点是无效的。另外额外说明一点,如果已经调试完成,可以使用发布版本运行一次,发布版本因为是纯代码编译,运行性能要更好。

调试代码:

当运行到断点处时,程序会停下来,后续的代码都可以进行调试,调试分为逐语句和逐过程,逐语句就是一行一行的,遇到方法就跳转到方法内部,逐过程就是当遇到包含方法的代码不会进入方法内部。

命中断点后,将鼠标移动到变量上,就会弹出变量的当前值的窗口:

激活这个小窗口还可以更改变量的值。

如果要调试查看下一行代码,就可以按F10进行逐过程或者F11进行逐语句调试。

或者点击菜单栏中对应的按钮:

Continue是继续执行代码直到遇见下一个断点,后边的红色方框是停止程序运行,最后标记的三个不同方向的箭头则分别是逐语句,逐过程,和跳出正在执行的程序。

变量监视:

当命中断点后,vs窗口下方会自动启动几个窗口:

Autos可以自动显示断点处上下文中的变量及其值等信息。

Locals可以显示当前作用域中可以访问的所有变量信息。

Watch1可以自行添加要监视的变量,并且这个窗口可以添加多个。

    条件断点:

我们可以为断点添加条件,这尤其适用于循环块中,比如用for循环5次,我们可以让其在循环值为3的时候停止,添加条件断点的方式就是移动鼠标到断点红点上,点击小齿轮,在弹出的框中设置即可:

    断点操作:

我们可以设置在断点命中时执行向Output窗口输出自定义数据的操作:

在输入框中输入要输出的语句即可,用大括号包裹要输出的变量,下方可以选择命中时执行操作接着执行代码,也可以不选,不选就执行命中不继续执行了,这个看自己的需求。在输入框中输入要输出的语句即可,用大括号包裹要输出的变量,下方可以选择命中时执行操作接着执行代码,也可以不选,不选就执行命中不继续执行了,这个看自己的需求。

个人公众号,热爱分享,知识无价。

简单聊聊VisualStudio的断点调试的更多相关文章

  1. chrome developer tool—— 断点调试篇

    断点,调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析.也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时 ...

  2. 转载|chrome developer tool—— 断点调试篇

    断点,调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析.也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时 ...

  3. JavaScript调试技巧之断点调试

    首先,在各个浏览器中,断点调试支持的最好的当然是Firefox,Firefox不仅可以使用Firebug调试页面js脚本,还可以用高级调试工具例如JavaScript Debugger (Venkma ...

  4. VisualStudio 断点调试详解

    本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时 本文将会按照从简单到复杂, ...

  5. 【Android学习笔记】Android Studio简单断点调试

    首先点击断点调试按钮运行App 启动之后,会弹出如下图的提示框,不要管,几秒之后这个弹框会自动消失,然后App会成功运行. 下面介绍一下断点调试的相关操作按钮对应的功能: 按钮1的功能:从当前断点跳到 ...

  6. 【转】说说如何使用unity Vs来进行断点调试

    大家可以从这下载最新版的unity vs. UnityVs1.81下载  1.   安装unity vs.首先我们打开我们下载的unity vs.然后就会看见里面有3个文件,我们双击UnityVS 2 ...

  7. 说说如何使用unity Vs来进行断点调试

    转载自:http://dong2008hong.blog.163.com/blog/static/4696882720140293549365/ 大家可以从这下载最新版的unity vs. Unity ...

  8. 2018-8-10-VisualStduio-打断点调试和不打断点调试有什么区别

    title author date CreateTime categories VisualStduio 打断点调试和不打断点调试有什么区别 lindexi 2018-08-10 19:16:52 + ...

  9. 【转】使用Fiddler进行HTTP断点调试。

    这是Fiddler又一强大和实用的工具之一.通过设置断点,Fiddler可以做到: 1. 修改HTTP请求头信息.例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到 ...

随机推荐

  1. SpringMVC源码分析和启动流程

    https://yq.aliyun.com/articles/707995 在Spring的web容器启动时会去读取web.xml文件,相关启动顺序为:<context-param> -- ...

  2. 【linux】驱动-1-环境准备

    目录 前言 1. 开发环境搭建 1.1 环境准备 1.1.1 安装工具 1.1.2 编译内核 1.1.2.1 获取内核源码 1.1.2.2 编译内核 1.2 内核驱动模块编译和加载 1.2.1 hel ...

  3. 周期串(JAVA语言)

    package 第三章习题; /*  * 如果一个字符可以由某个长度为k的字符串重复多次得到,则称该串以k为周期.  * 例如:abcabcabcabc 以3为周期(注意:它也以6和12为周期)  * ...

  4. Genymotion下载模拟器慢

    •问题来源 Genymotion 是个很不错的 Android 模拟器,系统更新快,启动速度快: 但是服务器在国外,Android 镜像下载起来那个速度就不敢恭维了: 当然如果你可以[科学,上网]就另 ...

  5. 【oracle学习笔记02】Oracle Architecture —— Process Structure

    Oracle中有三类进程: 1 User Process 2 Server Process Server Process is a program that directly interacts wi ...

  6. Asp.Net Core 5 REST API 使用 JWT 身份验证 - Step by Step

    翻译自 Mohamad Lawand 2021年1月22日的文章 <Asp Net Core 5 Rest API Authentication with JWT Step by Step> ...

  7. 华为云PB级数据库GaussDB(for Redis)揭秘第七期:高斯Redis与强一致

    摘要:在KV数据库领域,"强一致性"不仅是一个技术名词,它更是业务与运维的重要需求. 清明刚过,五一假期就要来了.大好春光,不如去婺源看油菜花吧!小云迅速打开APP刷出余票2张,赶 ...

  8. Dynamics CRM实体系列之字段

    本节开始讲实体中的基础数据存储对象,也就是字段. Dynamics CRM目前总共有13种字段类型,分别为单行文本.选项集.多选选项集.两个选项.图像.整数.浮点数.十进制数.货币.多行文本.日期和时 ...

  9. 基于 Socket 的群聊聊天室(带图形界面,包含注册、登录、数据入库功能)

    代码下载 https://github.com/juno3550/GroupChatRoom 实现框架 Chat 包: server.py:服务器端执行代码(TCP 服务器,根据客户端消息调用 mod ...

  10. 【Mybatis源码解析】- JDBC连接数据库的原理和操作

    JDBC连接数据库的原理和操作 JDBC即Java DataBase Connectivity,java数据库连接:JDBC 提供的API可以让JAVA通过API方式访问关系型数据库,执行SQL语句, ...