掌握Visual Studio断点
我知道你现在在想什么。断点?真的吗?关于断点有什么需要掌握的?你按F9然后停在代码行。如果你是这么想的,这篇文章是给你的:继续读
Visual Studio提供了一组相当丰富的断点类型和操作,可以使您的调试体验更加舒适和高效。我们将在这篇文章中讨论四种断点。
条件断点
定义断点时,可以将其与条件关联(右键单击断点并选择何时命中)。在这种情况下,您几乎可以使用任何可以在即时窗口中计算的C++/C#语句,包括复杂表达式。调试器将在每次到达断点时计算表达式的值,并且仅当其计算结果为true时才会中断。
请注意,尽管断点可能只偶尔中断,但它仍然会减慢应用程序的速度,因为调试器必须在应用程序暂停时计算表达式,然后才能恢复它
追踪点---Tracepoints
断点不必中断应用程序的执行。在许多情况下,您只需要检查某些变量或表达式的当前值,然后立即继续执行。这不需要更改代码以包含跟踪语句:您只需将断点与跟踪操作相关联,跟踪操作将向Visual Studio输出窗口显示您想要的任何消息。同样,您可以显示复杂的表达式。
函数断点
即使没有函数的源代码,也可以在函数中设置断点。只需转到Debug>New Breakpoint>Break at函数并指定函数名。这也可以从“调用堆栈”窗口中获得-只需单击一个帧并按F9在该函数上放置一个断点。
数据断点
修改特定内存位置时,可以使用数据断点停止调试器。这个超级强大的特性对于多线程应用程序和各种内存损坏场景非常有用,在这些场景中,内存位置会以意外的方式修改。与源断点不同,您不会将断点放在代码行上。相反,您可以使用Debug>New Breakpoint>newdatabreakpoint菜单项指定内存位置。
不幸的是,这个特性只适用于C/C++应用程序。当托管对象在几代之间升级或发生堆压缩时,它们在堆中移动,使它们无法跟踪。
总结
如您所见,通过组合条件断点和跟踪点,您可以获得应用程序执行的跟踪,而无需向代码中添加任何跟踪语句或重新启动调试会话。通过添加函数断点和数据断点,可以进一步提高调试工作的灵活性。享受您的Visual Studio断点!
掌握Visual Studio断点的更多相关文章
- Visual Studio断点调试, 无法监视变量, 提示无法计算表达式
在使用Visual Studio 2012进行断点调试时,对某个变量添加监视,出现"无法计算表达式"的提示. 解决办法:依次点击菜单栏中的"调试"→" ...
- Visual Studio 断点无法命中怎么办?
经常远程调试服务器打断点是空心的,很抓狂,正确的方法应该是 #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { System.Diagnos ...
- Visual Studio调试之断点基础篇
Visual Studio调试之断点基础篇 我曾经问过很多人,你一般是怎么调试你的程序的? F9, F5, F11, F…… 有很多书和文章都是介绍怎么使用Visual Studio编写WinForm ...
- Visual Studio调试之断点进阶篇
Visual Studio调试之断点进阶篇 在上一篇文章Visual Studio调试之断点基础篇里面介绍了什么是断点,INT 是Intel系列CPU的一个指令,可以让程序产生一个中断或者异常.程序中 ...
- Visual Studio 当前不会命中断点的问题
这个问题一般有两个版本 1.当前不会命中断点,还没有为该文档加载任何符号. 2.当前不会命中断点,源代码与原始版本不同. 要解决第一个问题,就要了解一种文件格式“PDB(Program DataBas ...
- 使用Visual Studio加断点调试Unity游戏的C#代码
1.安装Unity5.2.5 2.安装Microsoft Visual Studio 2013 3.打开VS2013,点击Tools | Extensions and Updates,然后在这个界面点 ...
- Visual Studio Code 通过 Chrome插件Type Script断点调试Angular 2
1. 下载Visual Studio Code (https://code.visualstudio.com/) 2. 安装插件Debugger for chrome 3. 确定tsconfig.js ...
- 【已解决】在 Visual Studio 中设置 JavaScript/TypeScript 的断点 脚本出现自动中断错误
运行ASP.NET Core 程序出现错误如下: 已启用 Visual Studio 中的 Chrome 脚本调试 在 Visual Studio 中设置 JavaScript/TypeScript ...
- 使用Visual Studio 调试断点不起作用的问题解决办法 调试Revit CAD 不能进入断点
随着Visual Studio 2010正式版的发布,相信不少人都像我一样升级到了Visual Studio 2010.那么您在使用VS2010在AutoCAD,Map 3D或Revit的.net应用 ...
随机推荐
- 如何修改SQL Server 2008 R2数据库的内存
本篇经验将和大家介绍如何修改SQL Server 2008 R2数据库的内存,希望对大家的工作和学习有所帮助! 工具/原料 SQL Sever 2008 R2数据库已安装 方法/步骤 1 打开 ...
- luogu p2705 小球
题目部分 题目描述 有 R 个红色盒子和 B 个蓝色盒子,还有 R 个红色小球和 B 个蓝色小球.每个盒子只能装一个小球,每个小球都要放在一个盒子里. 如果把一个红色小球放在一个红色盒子里,那么得分是 ...
- Feign切换client到okhttp无法生效天坑!(附带发生的原因)
提示:如果只看如何解决问题,请看文章的末尾如何解决这个问题 1. 场景描述 最近项目中使用了feign当做http请求工具来使用.相对于httpclient.resttemplate来说,fegin用 ...
- Mysql中的变量
Mysql中的变量众多(即运行的配置),如:事务相关的.连接相关的.查询优化类的等等. 变量的作用域: 1.临时作用域 session级别:即打开一个与mysql server会话的基础上的作用域,变 ...
- 还不错的PHP导出EXCEL函数挺好用的
直接上函数吧 //导出 $data内容二维数组 $title各个标题 $filename表名称 function exportexcelinfo($data=array(),$title=array( ...
- redis 缓存问题汇总
前言:在使用redis的时候,特别是大型应用,会碰到不少问题,下面就来总结一下使用redis时的常见问题 一.redis为缓存的问题 1.缓存和数据库双写一致性问题 分析:一致性问题是分布式常见问题, ...
- Application类-欢迎页(初始界面)
在程序界面显示前,如果我们处理了很多耗时操作,这个时候给用户提示一个欢迎页便是十分友好的.WPF为我们提供了这个特性: 第一种方法:通过设置图片资源的生成操作 粘贴一个图片到我们的项目中 在解决方案管 ...
- ionic4 页面跳转传值和新页面取值
页面跳转 : <ion-row *ngFor="let item of aboutData.stockData" [routerLink]="[ '/stock-d ...
- .net 中访问config的一些方式
人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志. 哎!好久没有写博客了,今天就分享一些比较常用的对config文件的访问一些方式. 首先 引用 using System.Configurat ...
- vscode 代码折叠快捷键,折叠所有/展开所有
1.折叠所有区域的快捷键:ctrl + k ctrl + 0 (这里是数字键0) 2.展开所有区域的快捷键:ctrl + j ctrl + j