.NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧

.NET Core 快速入门教程

.NET Core 快速学习、入门系列教程。这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows、Linux(CentOS、Ubuntu)基础开发环境的搭建、第一个.NET Core App,以及开发工具的使用、调试技巧,调试快捷键整理等等。
更多交流可以加入.NET技术交QQ群:200897657

一、前言

  • 为什么要调试代码?
    通过调试可以让我们了解代码运行过程中的代码执行信息,比如变量的值等等。
    通常调试代码是为了方便我们发现代码中的bug。ken.io觉得熟练代码调试技巧是成为合格程序员的基本要求。

  • 本篇开发环境
    1、操作系统: Windows 10 X64
    2、SDK: .NET Core 2.0 Preview
    3、IDE:VS Code 1.14

二、调试技巧

  • 设置断点

在代码编辑区域,点击左侧代码行行号的左边,即可在该行设置断点

  • 启动调试

使用菜单:调试->启动调试,或者使用快捷键F5启动调试

启动调试后,程序启动,并会停留在第一个断点这一行。且这行的代码并未执行。
VS Code会自动唤出Debug工作区,本文将逐步介绍常用功能。

  • Debug工作区介绍

1、顶部Debug工具栏

按钮&快捷键说明(ken.io的翻译)
绿色向右箭头(F5)继续执行程序,如果遇到断点则会停留到该断点
蓝色向右箭头(F10)单步跳过:执行一条语句,但是遇到方法调用时不进入,直到方法执行完成后直接继续。
蓝色向下箭头(F11)单步调试:执行一条语句,遇到方法调用时会进入方法进行调试
蓝色向上箭头(Shift+F11)单步跳出:执行当前当前方法并到下一步骤,如果当前方法有断点则会到下一个断点
绿色环形箭头(Ctrl+Shift+F5)重新启动调试
红色方块(Shift+F5)停止调试

2、变量区域

管理当前方法已经声明的变量信息

3、监视

可以添加要监视的表达式,比如i*2+5

如果i的值发生变化,将会实时计算结果

4、调用堆栈

显示当前调试的堆栈信息

说明(ken.io的翻译)
heelodotnet.dll调用的动态链接库
hellodotnet命名空间
Program.Main(string[] args)调用的类&方法
Line当前调用方法的行号

如果有多个调用的链接库可以鼠标单击切换。查看变量等信息

5、断点

管理断点

  • 调试过程中修改变量

选中要修改的标量,鼠标右键->设置值(快捷键F2也可以)

设置值:

回车键保存,然后F10进行单步跳过

本来i=0,randomNum=28,如果继续执行result=false,将无法执行if语句块。
修改后randomNum=0,执行后result=true,让本来会被跳过的if语句块可以被调试。

三、VS Code调试 .NET Core快捷键总结

快捷键说明(ken.io的翻译)
快捷键:F5继续执行程序,如果遇到断点则会停留到该断点
快捷键:F10单步跳过:执行一条语句,但是遇到方法调用时不进入,直到方法执行完成后直接继续。
快捷键:F11单步调试:执行一条语句,遇到方法调用时会进入方法进行调试
快捷键:Shift+F11单步跳出:执行当前当前方法并到下一步骤,如果当前方法有断点则会到下一个断点
快捷键:Ctrl+Shift+F5重新启动调试
快捷键:Shift+F5停止调试
快捷键:F9切换断点:跳到下一个断点
快捷键:Shift+F9列断点:在当前光标的下一行增加一个断点

相关文章: 

  • .NET Core快速入门教程 1、开篇:说说.NET Core的那些事儿

  • .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)

  • .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)

  • .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

原文地址:https://ken.io/note/dotnet-core-qucikstart-debug-vscode-skill


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssl2646-线段树练习3【线段树】

正题 题意 一条长m线&#xff0c;有n条长度不同的线段&#xff0c;求该线被分割成多少段 解题思路 标记颜色&#xff0c;然后统计是用一个color表示上次搜到的(因为线段树的查找顺序是从左到右的)去重 代码 #include<cstdio> #include<cstring> using namespa…

Unicode与UTF-8的区别

转载自 Unicode与UTF-8的区别 要弄清Unicode与UTF-8的关系&#xff0c;我们还得从他们的来源说起&#xff0c;下来我们从刚开始的编码说起&#xff0c;直到Unicode的出现&#xff0c;我们就会感觉到他们之间的关系 ASCII码 我们都知道&#xff0c;在计算机的世界里&#x…

实体类?Dao接口?Mapper映射文件?都别写了!!!用这种方法就可以

大家好&#xff0c;我是雄雄&#xff0c;前两天一直在解决使用idea整合SSM的报错问题&#xff0c;今天&#xff0c;给大家带来的是如何使用插件快速生成实体类、接口以及映射文件&#xff0c;相信你看过本文之后对你有很大的帮助。前言每次我们在写代码的时候&#xff0c;都会对…

DDD理论学习系列(11)-- 工厂

1.引言 在针对大型的复杂领域进行建模时&#xff0c;聚合、实体和值对象之间的依赖关系可能会变得十分复杂。在某个对象中为了确保其依赖对象的有效实例被创建&#xff0c;需要深入了解对象实例化逻辑&#xff0c;我们可能需要加载其他相关对象&#xff0c;且可能为了保持其他…

ssl2647-线段树练习4【线段树】

正题 题意 一条长m线&#xff0c;有n条长度不同的线段&#xff0c;查询x到x1有多少条线 解题思路 标记直接覆盖颜色数&#xff0c;然后找到那个点&#xff0c;之后向上到根节点把所有叠加的线统计 代码 #include<cstdio> #include<cstring> using namespace s…

记得完成寒假作业~

今天&#xff0c;对于学生们来说&#xff0c;没有比这在开心的日子了&#xff0c;因为&#xff0c;他们放假了&#xff01;&#xff01;&#xff01;有的同学&#xff0c;周一来了就开始盼望着周五&#xff0c;每天都扳着手指头数还剩几天才能到周五&#xff0c;周一心里就想&a…

数据库的最简单实现

转载自 数据库的最简单实现 所有应用软件之中&#xff0c;数据库可能是最复杂的。MySQL的手册有3000多页&#xff0c;PostgreSQL的手册有2000多页&#xff0c;Oracle的手册更是比它们相加还要厚。 但是&#xff0c;自己写一个最简单的数据库&#xff0c;做起来并不难。Reddi…

Raft协议安全性保证

分布式系统中主要的问题就是如何保持节点状态的一致性&#xff0c;不论发生任何failure&#xff0c;只要集群中大部分的节点可以正常工作&#xff0c;则这些节点具有相同的状态&#xff0c;保持一致&#xff0c;在client看来相当于一台机器。 一致性问题本质就是replicated sta…

2021,春节联欢会

今天,3班和4班都组织了春节联欢会,每个节目都是有同学们精心准备的,非常非常的精彩。 上午,搬着电脑去上课的时候,发现黑板上已经被红红的彩带占上了,估计学生们这时候的心理就是,应该不能上课了吧。然后我就在“众目睽睽”下拆下来,将投影仪幕布放下来继续上课,哈哈哈…

网关过滤

内置网关过滤 自定义过滤

你,的寒假作业写多少了?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。一晃寒假已过10多天&#xff0c;亲爱的同学们&#xff0c;你的寒假作业写多少了&#xff1f;是一点都没动呢还是多少动了点了&#xff1f;昨天晚上在3班的群里发了几套课程&#xff0c;刚发就有几位同学…

MassTransitamp;amp;Sagas分布式服务开发ppt分享

saga&#xff0c;与分布式相关&#xff0c;最早被定义在Hector Garcia-Molina和Kenneth Salem的论文"Sagas"中。这篇论文提出了一个saga机制来作为分布式事务的替代品以解决长时间运行的分布式事务&#xff08;long-running process&#xff09;的问题。这篇论文认为…

全局过滤器

自定义全局过滤器

最长回文子串(Longest Palindromic Substring)

转载自 最长回文子串&#xff08;Longest Palindromic Substring&#xff09;——三种时间复杂度的解法 子串&#xff1a;小于等于原字符串长度由原字符串中任意个连续字符组成的子序列 回文&#xff1a;关于中间字符对称的文法&#xff0c;即“aba”(单核)、“cabbac”(双核)…

小白入门级的视频剪辑软件

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。前言昨天&#xff0c;给班级群里面分享了个视频剪辑软件——剪映PC端&#xff0c;并交代同学们&#xff0c;剪辑视频可以以它来入手&#xff0c;我大致的看了看&#xff0c;PC端的剪映功能基本上能满足…

DDD理论学习系列(12)-- 仓储

1. 引言 DDD中Repository这个单词&#xff0c;主要有两种翻译&#xff1a;资源库和仓储&#xff0c;本文取仓储之译。 说到仓储&#xff0c;我们肯定就想到了仓库&#xff0c;仓库一般用来存放货物&#xff0c;而仓库一般由仓库管理员来管理。当工厂生产了一批货物时&#xf…