devc调试设置断点后没有反应_简单聊聊VisualStudio的断点调试

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

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

如何断点:

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

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

25766f724e4ac2728156b94364d13286.png

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

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

583b8128e431e53a9f6e85d093d1cb0e.png

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

b777bad5d716f6b72ddffeeeee1ffd1b.png

调试代码:

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

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

f9e86e3882645c7979d7b0d2a443c8db.png

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

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

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

7f26141650d7f07d7b638a89a93dd176.png

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

变量监视:

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

2663348aed626f0428d5ffb473f358b6.png

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

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

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

ef019e20ec644f9f0a59cfea5732ae06.png

条件断点:

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

50069c8dfe204ceb492f7944c83da35b.png

断点操作:

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

fe8377f3debe9c11b00beac11ec460d8.png

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

个人公众号:Start Off CSharp

个人博客:https://www.cnblogs.com/charlesmvp/

知识无价,愿与你分享。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值