Visual Studio调试技巧

VAssistX


VAssistX下载地址:http://pan.baidu.com/s/1eQJ9Ud8


常用快捷键


查找项目文件:alt+shift+o


查找类或变量的所有引用:alt+shift+f


显示方法列表/查找方法:alt+m



跳到方法实现/方法声明:alt+g


切换到.h文件/.cpp文件:alt+o


批量改变量/方法/类名:alt+shift+r


断点调试


常用快捷键

F10:逐过程

F11:逐语句


条件断点调试

在运行时如果有非常多Layout对象,但我只想中断_tag为76888的对象的某个方法。这时候就可以通过设置断点条件来实现了。


在断点中右键选择条件,添加判定条件。




断点设置命中次数

如果有一个方法被调用的次数非常多,而我只想中断第n次或者>=n或者2n次时的运行。这时可以通过设置命中次数实现。



查看内存

打开内存窗口(必须打断点):ctrl+alt+m+1

比如,我这里查看一个int类型数组中的值,输入地址,右键选择4字节整数(因为int占4个字节),带符号显示表示显示正负号,列可选择显示列数。



监视

选择一个表达式或者一个变量,右键添加监视,可以得到表达式的执行结果或监视变量的变化。

可以直接点击名称列,直接输入表达式,回车就可以看到执行结果。可以在运行时改变变量的值或者执行函数等。


快速监视

快捷键:shift + f9

在快速监视窗口,可以运行时执行表达式。

重新计算:再次执行

添加监视:添加到监视窗口,因为在快速监视窗口是临时的监视,窗口关闭就没有了。


调用堆栈

快捷键:ctrl + alt +c

在调用堆栈窗口可以看到方法的调用层次。


局部变量

快捷键:ctrl + alt +l

在局部变量窗口可以看到当前所有局部变量。


查看汇编代码

快捷键:ctrl + alt + d

在反汇编窗口可以看到源码对应的汇编代码。


寄存器

ctrl + alt + g



$(RemoteMachine)
设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。

$(References)
以分号分隔的引用列表被添加到项目中。

$(ConfigurationName)
当前项目配置的名称(例如“Debug”)。

$(PlatformName)
当前项目平台的名称(例如“Win32”)。

$(Inherit)
指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。

$(NoInherit)
使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用 $(StopEvaluating)。使用 $(NoInherit)会导致对于同一属性忽略任何出现的 $(Inherit)。

$(StopEvaluating)
立即停止计算链中宏的计算。出现在 $(StopEvaluating) 之后的任何值将不出现在宏的计算值中。如果$(StopEvaluating) 在 $(Inherit) 之前,计算链中当前位置的继承值将不会连接到宏值。$(StopEvaluating)是 $(NoInherit) 的功能超集。

$(ParentName)
包含此项目项的项的名称。该名称将是父文件夹名称或项目名称。

$(RootNameSpace)
包含应用程序的命名空间(如果有)。

$(IntDir)
为中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。

$(OutDir)
输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。

$(DevEnvDir)
Visual Studio .NET 的安装目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(InputDir)
输入文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。如果该项目是输入,则此宏等效于 $(ProjectDir)。

$(InputPath)
输入文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectPath)。

$(InputName)
输入文件的基本名称。如果该项目是输入,则此宏等效于 $(ProjectName)。

$(InputFileName)
输入文件的文件名(定义为基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectFileName)。

$(InputExt)
输入文件的文件扩展名。它在文件扩展名的前面包括“.”。如果该项目是输入,则此宏等效于 $(ProjectExt)。

$(ProjectDir)
项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectPath)
项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(ProjectName)
项目的基本名称。

$(ProjectFileName)
项目的文件名(定义为基本名称 + 文件扩展名)。

$(ProjectExt)
项目的文件扩展名。它在文件扩展名的前面包括“.”。

$(SolutionDir)
解决方案的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(SolutionPath)
解决方案的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(SolutionName)
解决方案的基本名称。

$(SolutionFileName)
解决方案的文件名(定义为基本名称 + 文件扩展名)。

$(SolutionExt)
解决方案的文件扩展名。它在文件扩展名的前面包括“.”。

$(TargetDir)
生成的主输出文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(TargetPath)
生成的主输出文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(TargetName)
生成的主输出文件的基本名称。

$(TargetFileName)
生成的主输出文件的文件名(定义为基本名称 + 文件扩展名)。

$(TargetExt)
生成的主输出文件的文件扩展名。它在文件扩展名的前面包括“.”。

$(VSInstallDir)
安装 Visual Studio .NET 的目录。

$(VCInstallDir)
安装 Visual C++ .NET 的目录。

$(FrameworkDir)
安装 .NET Framework 的目录。

$(FrameworkVersion)
Visual Studio 使用的 .NET Framework 版本。与 $(FrameworkDir) 相结合,就是 Visual Studio 使用的 .NET Framework 版本的完整路径。

$(FrameworkSDKDir)
安装 .NET Framework SDK 的目录。.NET Framework SDK 可作为 Visual Studio .NET 的一部分安装,也可单独安装。


$(WebDeployPath)
从 Web 部署根到项目输出所属于的位置的相对路径。返回与 RelativePath 相同的值。

$(WebDeployRoot)
指向 <localhost> 位置的绝对路径。例如,c:\inetpub\wwwroot。

$(SafeParentName)
有效名称格式的直接父级的名称。例如,窗体是 .resx 文件的父级。

$(SafeInputName)
作为有效类名的文件的名称,但不包括文件扩展名。

$(SafeRootNamespace)
项目向导将在其中添加代码的命名空间名称。此命名空间名称将只包含在有效的 C++ 标识符中允许的字符。

$(FxCopDir)
fxcop.cmd 文件的路径。fxcop.cmd 文件不和所有的 Visual C++ 版本一起安装。


来源:http://www.cnblogs.com/lidabo/archive/2012/05/29/2524170.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值