精华内容
下载资源
问答
  • VS调试技巧

    千次阅读 2018-08-25 17:10:08
    VS调试中经常使用断点、堆栈窗口,很少使用监视、快速监视窗口和即时命令窗口。查找了相关资料后发现监视窗口在某些情况下还是很有用的,所以针对上述窗口大体总结了一下; 1.添加监视变量 程序执行过程中命中断点...

    VS调试中经常使用断点、堆栈窗口,很少使用监视、快速监视窗口和即时命令窗口。查找了相关资料后发现监视窗口在某些情况下还是很有用的,所以针对上述窗口大体总结了一下;
    一、监视窗口的使用
    1.添加监视变量
    程序执行过程中命中断点后,
    a. 在变量名称位置单击右键,“添加监视”;
    b. 将变量选中,拖动 到监视窗口;
    c. 在监视列表中双击,编辑要监视的变量名称;
    2. 监视中查看、修改变量当前值
    a. 若监视的变量为数值,则可选择数值展示的进制格式:1) 单击右键,选择"以x进制展示"; 1) 通过"变量名称,格式字符"的方式切换展示方式,如下图。图中a变量的当前值为0xabc,"a,d"是以十进制方式展示;"a,x"是以十六进制小写展示。vs支持多种格式字符,详细说明见如下链接:
    https://msdn.microsoft.com/zh-cn/library/75w45ekt.aspx
    数值格式化显式
    b. 双击变量值,可做编辑修改,修改后的变量如图标红高亮显式。MSDN上对于标红高亮的解释如下:

    为什么在“局部变量”窗口和“自动”窗口中变量值有时是红色的?
    你可能注意到,在“局部变量”和“自动”窗口中一个变量的值有时是红色的。 这些是自上次评估以来更改过的变量值。 此更改可能是在上一次调试会话中进行的,或者是因为在窗口中更改了该值。

    3.计算表达式的值
    在监视窗口中可对当前作用域中的可见变量计算相关表达式的值:
    a. 变量加减或取址
    这里写图片描述
    b.函数或接口调用
    接口调用时,值这一列对应为函数调用的返回值,若无返回值则为void
    这里写图片描述
    c.查看地址对应的符号信息
    调试中需要查看某些地址位置对应的符号,可以添加到监视窗口,默认地址值以数值方式展示。若明确知道该地址为某一类型变量的地址,则可以将对地址做强制地址转换,输入如下表达式:(CSomeType*)0x000aefee。然后就可以看到该地址对应内存中的内容。若不知道其实际类型,可尝试使用"void*"做强制转换以明确告诉调试器,该值为内存地址值,调试器会尝试做符号解析。测试中发现void*强转仅对编译期生成的静态符号,如函数,静态变量等能够准确匹配,堆或栈上分配的数据变量无法匹配(静态变量定义后需要有访问、使用,否则编译器会将其优化掉,导致监视时找不到该变量)。如下图:
    这里写图片描述
    二、断点调试的使用
    断点是程序调试中的必备技能,VS提供了多种类型的断点,有普通断点、数据断点和函数断点。大体说一下这三类断点的使用方式:

    1. 普通断点
      程序启动后,在指定代码位置添加的断点,待程序执行到断点位置后自动暂停。值得一提的,普通断点的使用也有小技巧,即指定断点命中的条件(条件断点)或断点命中时输出特定信息,不暂停程序运行(操作断点)。
      a. 条件断点
      断点上右击中选择条件,弹出如下面板,面板中可指定命中断点的条件,断点仅在条件匹配时暂停程序执行。条件表达式可以是当前作用域内的所有可访问变量的取值判断判断。在断点位置频繁执行,逐次命中断点查看变量值效率极低,此时条件断点最能发挥其作用。 在这里插入图片描述
      b. 操作断点
      操作断点,即断点命中时执行特定操作,通常时输出可访问变量的值到输出窗口,叹号图标引用变量的说明。在消息回调中,一次业务流有连续的多个消息上报,排查消息上报的时序或状态是否正确就可采用操作断点。操作结束后,输出中一次查看所有输出的消息值即可快速验证回调消息的正确性。
      在这里插入图片描述
    1. 数据断点
      调试中时常碰到因某个标记变量错误导致执行过程错乱,如何快速定位标记为赋值点成为定位问题的关键。数据断点就是针对某个内存地址的取值变化而定义的一类断点,可在取值变化时命中断点。内存地址只有在程序运行时才能够获取,所以该断点要结合普通断点一起使用,在普通断点命中后,通过监视窗口查看地址值或变量取地址表达式获取地址值,都可用于数据断点的设置。
      在这里插入图片描述
    2. 函数断点
      顾名思义就是针对函数标记符的断点,该断点在与符号匹配的函数调用时命中。典型场景,如程序中使用了某个界面库,该界面库提供了一个消息提示接口,很好用,程序中上千处错误提示的地方都在调,突然某一天冒出一个不知何处来的提示,要定位出错原因怎么办?接口在库里面,代码打断点肯定是不行了。此时函数断点可派上用场,指定断点位置为库中该接口,在消息再次出现命中断点,通过调用堆栈就能够找到调用位置,简直不要太方便。提示一下,函数名输入时不要忘记命名空间。在这里插入图片描述在这里插入图片描述
      断点很好用,但是也要注意,断点要及时删除或禁用,程序运行中断点太多会导致调试卡顿,尤其是数据断点和函数断点,有时候单步调试单步执行都要卡一下,不妨把断点清一下。当然,线程调试窗口也可以关一下,调试器要随时跟踪大量线程堆栈也是很耗性能的。

    另外,对于监视窗口的使用,CodeProject有篇文章总结的很好,推荐读一下:

    https://www.codeproject.com/articles/121623/10-tips-you-should-know-about-watch-window-while-d

    展开全文
  • VS调试技巧与调试快捷键

    千次阅读 2018-08-27 14:30:23
     2、调试:F10逐过程(不进入函数内部,直接获取函数运行结果)  F11逐语句(会进入函数),如果想跳出函数按shift+F11,如果对某个函数的使用定义不清楚,按F12转到定义。  3、按F5执行,如果调试中多个断点,...

     1、添加断点或取消断点:F9(或者点击代码行最左边的灰色行)

        2、调试:F10逐过程(不进入函数内部,直接获取函数运行结果)

            F11逐语句(会进入函数),如果想跳出函数按shift+F11,如果对某个函数的使用定义不清楚,按F12转到定义。

      3、按F5执行,如果调试中多个断点,按F5,执行到下一个断点

      4、出现箭头表示执行到该语句,但是该语句还没执行。

            

      可以向上或向下拖动这个黄色箭头到你想要执行的位置(如果监视前面代码,就向上拖到你想监视的位置(好处就是不用重新调试了,耶~),如果代码向下的代码太多,想直接跳到某一行代码,也可以直接拖到黄色箭头到该代码行。)

      5、鼠标悬停,监视变量

        鼠标悬停在变量上,可以监视变量的值。也可以点击右键添加监视,监视变量的值。还可以输入表达式改变或值,改变变量的值。添加监视有个好处,当变量执行多次的时候不用一步一步调。

      6、F6生成解决方案,

      7、条件断点,为断点写上条件,如果条件不成立,会忽略该断点。

      8、VS支持命令窗口,可以通过,视图-其他窗口-命令窗口来启动。一旦激活,你可以输入不同的命令来自动化调试。

     

        高效的VS调试技巧:http://www.csharpwin.com/csharpspace/13308r5759.shtml

    VS快捷键(目前常用的)

      F+(1-12)   (加黑常用)   

       F1帮助,F3查找下一个,F4属性窗口,F5调试,F6生成解决方法,F7查看代码,F9断点,F10调试逐过程,F11调试逐语句,F12: 转到所调用过程或变量的定义 

      1、查找:Ctrl+F(一般网页上,其他很多地方都适用)

      2、替换:Ctrl+F

      3、代码提示突然没有了:Ctrl+J 代码提示就出来了

      4、代码排版:Ctrl+K+D

      5、在控制台应用程序中,c+w+Tab得到,console.WriteLine();

      6、私有字段,生成属性:Ctrl+R+E

      7、Ctrl+左右箭头键: 一次可以移动一个单词 

      8、Ctrl+m+Crtr+o折叠所有大纲

      9、 prop + Tab + Tab (创建C#中的属性,之后用Tab进行位置的切换)

       10、Ctrl + E + C (注释)  <=>   Ctrl + K + C (注释)

            Ctrl + E + U (取消注释)  <=>  Ctrl + K + U (取消注释)

      11、Tab:增加缩进

      12、Ctrl + Tab (切换VS中的不同文件窗口)  

         Alt + Tab (切换Windows的不同窗口)

     

       有些快捷键太难记,不常用或者直接操作方便的,我就先不写了。遇到常用的再补充~

    展开全文
  • 通过VS打开已经创建好的工程...在VS中直接运行调试,读取不到本地配置,调试中断 原因 调试运行的工作目录是有后缀vcproj的工程文件的目录,而直接执行exe的工作目录是当前目录,所以直接调试会在build目录中搜索...

    通过VS打开已经创建好的工程,工程目录信息如下所示。
    在这里插入图片描述
    Debug文件夹如下图所示,注意其中包括很多本地配置文件,exe文件也在其中。
    在这里插入图片描述

    问题描述

    1. 直接运行exe文件,可以正常读取配置文件,程序运行正常。
      在这里插入图片描述
    2. 在VS中直接运行调试,读取不到本地配置,调试中断
      在这里插入图片描述

    原因

    调试运行的工作目录是有后缀vcproj的工程文件的目录,而直接执行exe的工作目录是当前目录,所以直接调试会在build目录中搜索需要的本地文件,直接运行exe文件则在Debug目录中搜索。

    解决方案

    一种方式是将本地的配置文件复制到build目录中,但是存在两个配置文件这显然会导致一些问题。
    另一种方式是:改变当前工程的工作目录,在本例中是将工作目录改到Debug。
    在这里插入图片描述

    展开全文
  • VS调试卡顿问题汇总,已解决!

    千次阅读 2020-06-15 16:12:01
    相信很多朋友都碰到过使用VS进行调试时,进入断点点击继续或者单步时会卡顿一段时间,体验十分不好,经过测试我找到了解决方法。

    前言

    相信很多朋友都碰到过使用VS进行调试时,进入断点点击继续或者单步时会卡顿一段时间,体验十分不好,经过测试我找到了解决方法。

    关闭微软符号服务器连接

    工具->选项->调试->符号中去掉Microsoft符号服务器的√。主要因为网速较慢。

    不要使用微软拼音输入法

    经测试vs调试时,使用微软拼音输入法,然后按f10进行单步调试时,会卡顿半分钟。而直接点击vs的单步选项则不卡顿,因此问题出在微软拼音输入和vs的不兼容。建议不使用系统自带的输入法。如果你是这个问题,那么就表现为按f10进行单步会卡顿,而直接点击单步按钮不会卡顿。

    使用托管兼容模式

    工具->选项->调试->常规中勾选使用托管兼容模式即可。

    结束语

    如果对你有帮助,请点个赞再走,谢谢。

    展开全文
  • UE4 VS调试

    千次阅读 2019-08-02 17:52:26
    VS中选择调试->附加到进程->UE4Editor.exe 添加断点,运行游戏进行调试 第二种:编辑器调试 关闭UE4编辑器(也可以不关) 选择DebugGame Editor,点击本地windows调试器进行调试,会重新打开UE4编辑器窗口...
  • 解决VS调试窗口闪退最直接有效方法

    千次阅读 2019-09-16 21:05:28
    在 main 函数中添加 system(“pause”); 注意得在renturn前添加!! 即可
  • VS调试时如何退出当前循环

    千次阅读 2019-02-20 19:16:42
    大家在使用vs调试代码的时候,进入一个循环,如果循环次数较多,会一直停留在这个循环代码里。 如何快速跳出这个循环呢? 解决方案 直接使用“Shift+F11”即可跳出当前循环。 微信搜索“BIM视界”公众号获得BIM行业...
  • VS调试不进入断点解决方法

    万次阅读 2018-08-24 10:18:51
    VS调试不进入断点解决方法 1. 确保进入调试状态 代码中指定程序是需要管理员身份运行,实际调试VS未使用管理员身份,会导致点击调试实际未进入调试状态。 VS下设置调试使用管理员权限方法: 打开程序集的...
  • VS调试时查看动态数组的全部元素

    万次阅读 多人点赞 2018-06-17 19:53:58
    进入调试状态后,工具栏调试中找到快速监视。 对于一维数组a[4], 数组名+逗号+长度 对于二维数组b[2][2],要按行查看内容,第一行就用 b[0],2 查看类的成员变量数组,加上对象访问到成员后和普通数组...
  • VS调试时修改代码

    千次阅读 2019-08-13 16:37:00
    最近碰到一个问题,就是vs调试模式下无法修改代码之后再继续,这种严重影响工作效率的问题怎么能忍,所以决心把这个坑填满。网上搜了大堆有头无尾有尾无头的答案,我一个一个试了几乎都没啥用。最后通过不断的测试...
  • VS调试之快速监视

    千次阅读 2018-06-05 15:49:40
    我们平时在使用Visual Studio调试的时候,通常会遇到鼠标移上去还是无法查看变量的值,比如Session["变量名"],这时候我们就可以采用VS提供的方法——快速监视来解决这个问题了。鼠标移上去-》右键-》快速...
  • VS调试时如何跳出for循环?

    千次阅读 2020-07-10 16:13:52
    例如这个程序,如果我单步调试时进入了第116行的for循环那么不论我们是(逐语句)F10还是(逐过程)F11还是(跳出)shift+F11,都无法做到让for循环一次性执行完。 解决办法:在for循环外设置断点,如:行125------...
  • VS调试dll详细过程记录

    千次阅读 2019-04-20 14:34:10
    VS调试dll详细过程记录 还可以参考博客: https://blog.csdn.net/u014738665/article/details/79779632 在我们写的程序中有时候调用dll,并且需要跟踪dll中的函数,此时直接调试调用dll的工程是无法跳进dll的...
  • vs调试时修改代码相应设置

    千次阅读 2018-01-03 11:16:34
    自行分析,新建解决方案,新建测试项目均不会出现此问题。...2、VS调试时,不能修改源代码的解决方案。如下图所示提示: 解决方案: (1)查看结果是和 “工具->选项->调试->编辑并继续->启用编辑并
  • 使用VS调试Dump文件

    万次阅读 2017-11-08 23:28:09
    (一) 调试Dump文件步骤 1. 准备调试所需要的文件放到一个文件夹:dump文件,程序编译生成的pdb文件(版本必须是产生崩溃的那个版本的编译信息),可执行文件(发生崩溃的版本)。如下图: 2. 使用visual ...
  • VS 调试时,不允许修改代码

    千次阅读 2018-08-27 14:31:18
    现象: 调试打断点后,修改显示对话框 解决办法: 可能是当前模式 为Release 修改为 Debug 模式(VS工具栏程序启动按钮,右侧的 下拉框 选择模式)    ...
  • 关于VS调试时的工作目录

    千次阅读 2018-12-14 00:57:01
    今天调试前把输出目录设为了项目下的Debug文件夹下(默认是解决方案目录下Debug下),生成的exe在修改后的目录。当我把两个待读文件放到exe目录,用文件名的方式读取(即相对路径),调试程序竟然...vs中工作目录的...
  • VS调试窗口闪退

    千次阅读 2017-03-02 13:35:22
    1.启动调试不要用这个按钮:直接Ctrl+F5启动。效果如下:  2.添加system("pause"); #include main() {   printf("Hello,World!\n");   system("pause"); } 效果如下:   3.添加  _...
  • 使用VS调试IIS网站

    千次阅读 2018-07-23 10:51:24
    3.点击绑定,将IIS网站绑定到要调试的IP和端口。   4.配置VS项目。右键项目属性,配置成如下: 5.点击创建虚拟目录。然后打开IIS网站,成功后浏览下网站,最后在VS里点击附加,选择w3wp.exe。 6.注意:IIS和...
  • VS调试技巧:让断点停在for循环中i为某个值的时候停下来
  • vs 调试时显示指针 数组的值有几种 方式 1、变量本 身是一个数组,不是指向数组的指针,则鼠标移动到变量上时可以直接看到。 2、变量是指向指针的数组,通常能看到第一项的值, 可以通过下面两种方法来查看。 (1...
  • VS 调试第三方库源码

    千次阅读 2018-09-13 18:33:46
    首先要有符号表 Tool–&gt;Option–&gt;Debugging–&gt;Symbols 其次要有源码 解决方案–&gt; 右键–&gt;属性
  • VS调试提示无可用源。

    千次阅读 2019-03-20 09:56:28
    如图,较大可能是调试的时候逐过程跟踪到了系统api,如上图我是跟踪到了BaseD.dll动态库,shift+f11跳出即可。
  • [UE4]VS调试模式简单介绍

    千次阅读 2019-05-05 11:24:52
    一般情况下,在UE4中新建的C++的工程,VS部分一般被分为DebugGame(直接以全屏方式运行你默认地图的游戏,可以调试,无法编辑蓝图)、DebugGame Editor(打开debug工程,可以编辑保存蓝图,可以调试信息)、...
  • 在Windows编程中,运行程序时出现错误,错误返回值为5,这表示程序运行的权限不够,在Visual Studio 2017 中设置程序以管理员身份运行的步骤是: 直接项目右键—属性—连接器—清单文件—uac执行级别 选择...
  • 如何使用vs调试.net framework代码 (一)

    千次阅读 2017-10-19 10:30:20
    经常我们在开发软件时候(特别是使用第三方库时),对于发生的异常和错误,由于拿不到底层框架的源代码,所以小白们经常靠猜,或者直接放弃。正常程序员虽然能使用断点...打开vs的 支持底层符号调试功能 3.使用函数中断法
  • 1.进入vs 2.点击调试---附加到进程---限定符(服务器地址:端口 注:此处需要首先在服务器上打开远程调试)---w3p.exe---点击附加 如图: 3.等待断点加载完毕 提示:远程调试方法有时候会出现断点打不上的情况,在...
  • VS调试时断点错位

    千次阅读 2017-09-22 15:28:24
    转载转VS调试时断点错位
  • 若是没有发布在IIS可以只关注方案一 方案一: ... 方案二: ...IIS中网站的程序应用池不要用默认的应用池,新建一个可以使用的应用池然后更改网站的应用程序池到新建的应用池,回收应用池重启网站即可...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,856,691
精华内容 742,676
关键字:

vs调试