Visual Studio Debug and Shortcuts
快捷键
快捷键 | 作用 |
---|---|
Ctrl+Tab | 在所有打开的窗口之间移动切换 |
Shift+Alt+Enter | 进入或退出编辑窗口全屏模式 |
Ctrl± | 在项目中已修改的元素间向后切换 |
Ctrl+Shift± | 在项目中已修改的元素间向前切换 |
Alt+鼠标左键 | 选择文本块 |
Shift+Alt+Arrow | 选中代码的一个垂直部分(比如修改一个变量声明中的前缀) |
Ctrl+Shift+V | 遍历剪贴板上的最后20个代码段 |
Ctrl+Alt+A | 打开命令窗口,快捷执行vs里的命令 |
Ctrl+Alt+I | 打开即时窗口,在编译时可做计算 |
Ctrl+,Ctrl+D | 打开代码定义窗口,双击某函数可以看到其定义 |
Ctrl+Shift+F | 快速查找 |
Ctrl+Shift+H | 快速替换,如果用正则表达式会很方便 |
Ctrl+D | 输入的内容前面加上前缀>,就相当于命令窗口 |
Ctrl+K,Ctrl+K | 添加/删除书签 |
Ctrl+K,Ctrl+W | 显示书签管理窗口 |
Window->Split | 把代码编辑器窗口分成两部分,同时显示同一个文件的不同部分。 |
Architecture->New Diagram | 可以绘制UML |
右键选择"查看调用层次结构" | 处理不熟悉的项目或重构项目时很有用 |
对.sln文件进行一个快速编辑,用如下代码替换文件的前两行,就能用vs2008打开vs2010的项目。
1 | Microsoft Visual Studio Solution File, Format Version 10.00 |
调试
使用调试窗口
这些窗口均可在此菜单路径下打开:Debug->Windows。
- Breakpoints窗口。该窗口显示应用程序中已经设置的所有断点信息。方便定位、禁用和删除断点。
- Output窗口。可用作标准输出。
- 监视窗口。Quick Watch,在变量上右键选择快速监视,显示特定时刻的变量值。Watch1-4窗口,在用户单步调试代码时监视变量的值。Autos窗口,包含了当前行、前一行和后一行中的变量。Locals窗口包含了当前方法中使用的所有变量。
- 代码执行窗口。Call Stack窗口显示调用堆栈,跟踪执行路径,右键可以设置断点或选择要显示的信息。Threads窗口列出应用程序的所有活跃线程。Modules窗口显示了当前执行的程序所引用的程序集列表。Processes窗口用于多进程端对端调试。
- 内存窗口。Memory1-4窗口用于查看特定位置处的内存数据。Disasembly窗口查看反汇编。Registers窗口查看寄存器。
断点调试
断点
**断点(breakpoint)**可以在指定的位置暂停或者中断应用程序的执行。当暂停的程序处于中断模式时,VS会显示各种调试窗口。
设置断点
三种断点:
普通断点(F9/左边栏点击/右键菜单/Debug菜单),函数断点(Debug->New Breakpoint->Break at Function,随后指定要设置断点的函数名称),地址断点(在Call Stack窗口,中断模式时添加断点)。
为断点指定条件
1.条件。右击断点设置。通过布尔表达式指定启用断点的条件,为false的话程序就会跳过断点继续执行。或设置条件发生改变时中断应用程序。红点和白色的十字。
2.计数。断点经历一定数目的迭代以后再启用。计数器的条件可以是:Always, Is equal to, Multiple of, Is greater than or equal to。
过滤
主要用于在多线程应用程序上把断点限制在一个特定的线程上。
断点操作
删除断点、禁用断点、移动断点、给断点加标签(这样可以在Breakpoints窗口对它们进行批处理操作)、导入和导出断点(可以备份和恢复断点,在开发人员之间共享。在Breakpoints窗口点击工具栏上的"导出满足当前条件的所有断点")。
跟踪点
**跟踪点(tracepoint)**与断点不同,在遇到跟踪点时,跟踪点会触发附加的事件。在调试程序时,可以动态地调整跟踪点而不影响代码的功能。
创建跟踪点
在一个已有断点上右键菜单中选择When Hit(命中条件),可以向控制台窗口写入信息或者运行宏命令。红色的菱形。
跟踪点操作
向控制台窗口打印信息或者运行一个宏。
输出消息默认是Function: $FUNCTION, Thread: $TID $TNAME
,除了对话框提示之外还有两个关键字:$FILEPOS
指定了当前文件的位置;$TICKS
用作关联时间指示器。
宏是用VB编写的。如果在VS中重复执行同一组动作,宏就很好用。View->Other Windows->Macro Explorer中可以选择和编辑宏。除了自己写VB之外,还可以自动记录,Tools->Macros->Record Temporary Macro(Ctrl+Shift+R),会立即启动记录器,记录用户在VS中执行的所有动作。
执行点
正在执行的代码行。黄色箭头。
代码的执行
1.Stepping Over(F10)。执行当前焦点所在的行并前进到当前代码块的下一行。如果到达了代码段的末尾,就返回调用块中。
2.Stepping in(F11)。如果是一个复杂的行,会执行所有的用户代码,进入被调用的子代码段。
3.Stepping Out(Shift+F11)。如果不小心进入一个很长的方法时,此功能将光标移动到调用当前方法的位置。
移动执行点
如果不小心跳过了关心的代码,拖动黄色箭头。小心使用此功能,可能导致无法预料的行为和变量值。
Edit and Continue功能
允许用户在执行过程中对程序进行修改。只要暂停程序,就可以更改代码,再恢复执行。新代码或者修改以后的代码会在程序中动态添加,所作的修改会立刻生效。
原始编辑
可以进行的修改存在一些限制。原始编辑是应用程序必须停止并重新构建的代码修改。比如:修改当前或者活动的语句、对全局符号的修改(比如,新的类型和方法,或者修改方法、事件和属性的签名)、对特性的修改。
停止应用修改
VS把修改整合或者应用到正在运行的程序中需要时间,如果希望取消,Debug->Stop Applying Code Changes。
数据提示
把光标停放在变量上,就会在数据提示中显示变量的值。
右击数据提示可以执行很多操作,如复制所显示的值、把变量添加到监视窗口中、编辑简单类型的变量的当前值。
可以固定数据提示。
数据提示可以导入和导出到外部的XML文件中。Debug->Import(Export) DataTips。
[1] Visual Studio 2010高级编程