调试是软件开发过程中非常重要的一个部分,它具挑战性,但是也有一定的方法和技巧。

  Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题。 该调试器可用于所有 Visual Studio 编程语言及其关联的库。 使用调试程序时,可以中断程序的执行以检查代码、检查和编辑变量、查看寄存器、查看从源代码创建的指令,以及查看应用程序占用的内存空间。

  本系列以 Visual Studio 2019 来演示调试的方法和技巧。希望能帮助大家掌握这些技巧。它们都很简单,却能帮你节约大量的时间。

调试方法与技巧
 
示例程序
后续的调试以下面的程序为示例进行演示说明。
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Demo002_NF45_CS50
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. var shapes = new List<Shape>
  11. {
  12. new Triangle(,),
  13. new Rectangle(,),
  14. new Circle(),
  15.  
  16. };
  17.  
  18. foreach (var shape in shapes)
  19. {
  20. shape.Width = ;
  21. shape.Draw();
  22.  
  23. int num1 = , num2 = ;
  24. num1 = num1 / num2;
  25.  
  26. Console.WriteLine();
  27. }
  28.  
  29. Console.WriteLine("Press any key to exit."); // 在调试模式下保持控制台打开
  30. Console.ReadKey();
  31. }
  32. }
  33.  
  34. #region 调试示例
  35.  
  36. /// <summary>
  37. /// 绘图类(基类)
  38. /// </summary>
  39. public class Shape
  40. {
  41. #region 属性
  42.  
  43. /// <summary>
  44. /// X 轴坐标
  45. /// </summary>
  46. public int X { get; private set; }
  47.  
  48. /// <summary>
  49. /// Y 轴坐标
  50. /// </summary>
  51. public int Y { get; private set; }
  52.  
  53. /// <summary>
  54. /// 图形高度
  55. /// </summary>
  56. public int Height { get; set; }
  57.  
  58. /// <summary>
  59. /// 图形宽度
  60. /// </summary>
  61. public int Width { get; set; }
  62.  
  63. #endregion
  64.  
  65. // 绘制图形(虚方法)
  66. public virtual void Draw()
  67. {
  68. Console.WriteLine("Performing base class drawing tasks");// 执行基类绘图任务
  69. }
  70. }
  71.  
  72. /// <summary>
  73. /// 圆形
  74. /// </summary>
  75. class Circle : Shape
  76. {
  77. public override void Draw()
  78. {
  79. Console.WriteLine("Drawing a circle"); // 绘制一个圆
  80. base.Draw();
  81. }
  82. }
  83.  
  84. /// <summary>
  85. /// 矩形
  86. /// </summary>
  87. class Rectangle : Shape
  88. {
  89. public Rectangle()
  90. {
  91.  
  92. }
  93.  
  94. public Rectangle(int width, int height)
  95. {
  96. Width = width;
  97. Height = height;
  98. }
  99.  
  100. public override void Draw()
  101. {
  102. Console.WriteLine("Drawing a rectangle"); // 绘制一个矩形
  103. base.Draw();
  104. }
  105. }
  106.  
  107. /// <summary>
  108. /// 三角形
  109. /// </summary>
  110. class Triangle : Shape
  111. {
  112. public Triangle()
  113. {
  114.  
  115. }
  116.  
  117. public Triangle(int width, int height)
  118. {
  119. Width = width;
  120. Height = height;
  121. }
  122.  
  123. public override void Draw()
  124. {
  125. Console.WriteLine("Drawing a trangle");// 绘制一个三角形
  126. base.Draw();
  127. }
  128. }
  129.  
  130. #endregion
  131. }

==

出处:https://www.cnblogs.com/SavionZhang/p/11280516.html

Visual Studio 调试 ---- 系列文章的更多相关文章

  1. Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序

    系列目录     [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...

  2. Visual Studio 调试系列6 监视变量(使用监视窗口和快速监视窗口)

    系列目录     [已更新最新开发文章,点击查看详细] 当你进行调试时,可以使用 监视窗口 和 快速监视窗口 来监视变量和表达式. 仅在调试会话期间,这两个窗口才可用. 监视窗口可以在调试时一次显示多 ...

  3. Visual Studio 调试系列10 附加到正在运行的进程

    系列目录     [已更新最新开发文章,点击查看详细] 可将 Visual Studio 调试器附加到本地或远程计算机上正在运行的进程. 进程运行后,在 Visual Studio 中选择“调试” & ...

  4. Visual Studio 调试系列9 调试器提示和技巧

    系列目录     [已更新最新开发文章,点击查看详细] 01 固定数据提示 如果你在调试时,经常将鼠标悬停在数据提示上,就可能想固定变量的数据提示,方便自己随时查看. 即使在重新启动后,固定的变量也能 ...

  5. Visual Studio 调试系列1 Debug 与 Release 模式

    系列目录     [已更新最新开发文章,点击查看详细] Debug 模式 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序. 在Debug模式下调试,可以在断点处看到 ...

  6. Visual Studio 调试系列2 基本调试方法

    系列目录     [已更新最新开发文章,点击查看详细] 在 Visual Studio 上下文中,当调试应用时,这通常意味着你在附加了调试器的情况下(即在调试器模式下)运行应用程序. 执行此操作时,调 ...

  7. Visual Studio 调试系列11 远程调试

    系列目录     [已更新最新开发文章,点击查看详细] 你可以调试已部署在另一台计算机的 Visual Studio 应用程序. 要进行此操作,可使用 Visual Studio 远程调试器. 01 ...

  8. Visual Studio 调试系列7 查看变量占用的内存(使用内存窗口)

    系列目录     [已更新最新开发文章,点击查看详细] 在调试期间,“内存”窗口显示应用程序正在使用的内存空间. 调试器窗口(如监视窗口.自动窗口.局部变量窗口和快速监视对话框)显示变量,这些变量存储 ...

  9. Visual Studio 调试系列4 单步后退来检查旧应用状态(使用使用 IntelliTrace 窗口)

    系列目录     [已更新最新开发文章,点击查看详细] IntelliTrace 后退会在每个断点处及调试器步骤事件发生时自动拍摄应用程序的快照. 凭借记录的快照便可以返回到上一个断点或步骤,并查看当 ...

随机推荐

  1. c语言之连接符

    c语言之连接符 1.连接符 连接符的概念是结合define预编译指令的使用技巧,用户可以向define中传入字符串来调用不同功能的函数. 2.代码例子 #include <stdio.h> ...

  2. winform自定义分页控件

    1.控件代码: public partial class PagerControl : UserControl { #region 构造函数 public PagerControl() { Initi ...

  3. php-微信分享签名

    //测试 $APPID='*************************'; $SECRET='***********************'; $url = trim($_REQUEST['u ...

  4. scala 函数式编程之集合操作

    Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的集合体系非常相似. ...

  5. 「UNR#1」奇怪的线段树

    「UNR#1」奇怪的线段树 一道好题,感觉解法非常自然. 首先我们只需要考虑一次染色最下面被包含的那些区间,因为把无解判掉以后只要染了一个节点,它的祖先也一定被染了.然后发现一次染色最下面的那些区间一 ...

  6. 『炸弹 线段树优化建图 Tarjan』

    炸弹(SNOI2017) Description 在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸 时,如果另一个炸弹所在位置 Xj 满足: Xi−Ri≤Xj≤Xi ...

  7. Appium中app的元素定位

    app定位方式,本文只讲Android手机的定位方式. 前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备 adb devices app元素定位工具一:UI Aut ...

  8. Django model distinct 的使用方法

    原文: 今天突然有人问起在 django 的 model 里面怎么用 distinct, 对于这种东西,我一向的观点是查看django 的在线文档.于是不加思索的根据在线文档给出了答案,但结果很让人沮 ...

  9. 服务上的图片直接在浏览器上可以打开,但是在img上报404错误处理方法

    在index.html中添加代码如下 <meta name="referrer" content="no-referrer" /> 如果还是存在问题 ...

  10. Crontab常用命令总结

    一.启动服务 /sbin/service crond start 二.关闭服务 /sbin/service crond stop 三.重启服务 /sbin/service crond restart ...