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

一、前言

  • 为什么要调试代码? 通过调试可以让我们了解代码运行过程中的代码执行信息,比如变量的值等等。 通常调试代码是为了方便我们发现代码中的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

列断点:在当前光标的下一行增加一个断点

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Google Dart

AngularDart4.0 英雄之旅-教程-02启动应用

码云项目页:https://gitee.com/scooplolwiki/toh-0

842
来自专栏田云专栏

webpack原理概述

Entry: 入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。

5394
来自专栏程序员的SOD蜜

Vue.js 入门指南之“前传”(含sublime text 3 配置) 1,下载安装Node.js2,配置Vue环境3,Vue初探4,配置sublime Text

题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指...

3749
来自专栏Ken的杂谈

Java快速入门教程 4、使用IntelliJ IDEA进行Java代码调试的技巧

鼠标右键菜单->Run App.main(),或者使用快捷键Shift+F9启动调试

5153
来自专栏hbbliyong

web程序打包详解

   重要更新:鉴于很多小伙伴们说看不到图,我这边换了几个浏览器看了下,都看得到的,估计是网速问题,请耐心等待,另外,为了更好的方便大家学习,特此提供源码以及一...

4277
来自专栏web前端教室

10.7-*春燕同学的学习周总结【web前端零基础课】

一个完整的nodejs的应用,由以下三部分组成:1,引入require模块,2,用createServer创建一个服务器,3,接收、响应请求(回调)

923
来自专栏魏琼东

一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-在UI中应用DataUIMapper组件

系列回顾       WinForm篇我用了一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)和一步一...

2099
来自专栏闪电gogogo的专栏

sublime学习笔记

1 sublime的几个优点 1.操作简单上手快 2.支持多点编辑:ctrl + 光标 3.基于Package Control强大的包管理功能 4.闪电一样的查...

3146
来自专栏ShaoYL

XCode的debug断点调试

2507
来自专栏Android开发指南

eclipse使用和快捷键

4169

扫码关注云+社区

领取腾讯云代金券