Visual Studio调试器指南---选项对话框--->"调试"说明(一)
“选项”对话框(“工具”菜单)中的“调试”文件夹提供以下页,可以使用它们指定调试器工具选项。下面详细说说。
“选项”对话框 ->“调试”->“常规”
若要访问“常规”页,请单击“工具”菜单并选择“选项”。 在“选项”对话框中,展开“调试”节点并选择“常规”。 该页可设置下列常规调试选项。
在删除所有断点之前询问
在完成“删除所有断点”命令前需要进行确认。
就是这个对话框一个进程中断时则中断所有进程
发生一个中断时,同时中断调试器附加到的所有进程。当异常跨越 AppDomain 或托管/本机边界时中断
在托管或混合模式调试中,如果满足以下条件,公共语言运行时可能会捕获跨越应用程序域边界或托管/本机边界的异常:1) 当本机代码使用 COM 互操作调用托管代码而托管代码却引发异常时。
2) 当在应用程序域 A 中运行的托管代码调用应用程序域 B 中的托管代码而应用程序域 B 中的代码却引发异常时。
3) 当代码使用反射调用一个函数而该函数却引发异常时。 有关反射的更多信息,请参见 反射。
在第 2) 和 3) 条中,异常有时由 mscorlib 中的托管代码而不是公共语言运行时捕获。 此选项不影响在 mscorlib 捕获到异常时中断。
启用地址级调试
启用在地址级上进行调试的高级功能(“反汇编”窗口、“寄存器”窗口和地址断点)。也就是说如果启用该项,将会得到另外三个调试工具:“反汇编”窗口、“寄存器”窗口和地址断点。如果不选中此项,就不会有。如果源不可用,则显示反汇编
自动在尝试调试源不可用的代码时显示“反汇编”窗口。启用断点筛选器
使您可以在断点上设置筛选器以使其仅影响特定的进程、线程或计算机。当勾选上时,在断点处点击右键可见否则不可见
启用异常助手
仅用于托管代码。 选中此选项时,托管异常打开新的“异常助手”对话框而不是旧的“异常”对话框。 “异常助手”更详细,可提供关于异常的更好帮助。
勾选上时否则
出现未经处理的异常时展开调用堆栈
导致“调用堆栈”窗口将调用堆栈回滚到未经处理的异常发生之前的点。启用“仅我的代码”(仅限托管)
启用此功能时,调试器仅显示和单步执行用户代码(“我的代码”),而忽略系统代码和其他经过优化或没有调试符号的代码。
那么那些是“你的”代码呢?1、你的代码被优化过。
2、你的代码没有符号
3、你的代码没有标记DebuggerNonUserCodeAttribute例如在一个解决方案里有两个项目:ClassLibrary1 and
ConsoleApplication1,ConsoleApplication1调用ClassLibrary1 的类在控制台显示一个“hello
world”,在生成的时候比较ClassLibrary1为优化,在ConsoleApplication1中封装Console.WriteLine方法地方设置一个断点,然后单步调试,到达断点时候,发现在断点处中断了,继续按F11,并没有进入方法内部,而是跳到了下一行。在变量窗口中显示非用户对象的所有成员(仅限 Visual Basic)
启用非用户代码(不是“我的代码”)中对象中的非公共成员的显示。启动时若没有用户代码则发出警告(仅限托管)
当启用“仅我的代码”进行调试时,此选项在没有用户代码(“我的代码”)的情况下发出警告。启用 .NET Framework 源代码单步执行
允许调试器单步执行 .NET Framework 源代码。 自动启用此选项会禁用“仅我的代码”,.NET Framework 符号将下载到缓存位置。 可以在“选项”对话框中“调试”类别下的“符号”页中更改缓存位置。逐过程执行属性和运算符(仅限托管)
使调试器无法单步执行托管代码中的属性和运算符。启用属性求值和其他隐式函数调用
在变量窗口和“快速监视”对话框中打开属性的自动求值和隐式函数调用。在变量窗口中对对象调用字符串转换函数(仅限 C# 和 JavaScript)
在变量窗口中计算对象时,执行隐式字符串转换调用。 因此,结果将显示为字符串而不是类型名。 仅在 C# 代码中进行调试期间适用。 此设置可以由 DebuggerDisplay 特性重写。启用源服务器支持
告知 Visual Studio 调试器从用于 Windows 的调试工具中的 SrcSrv 源服务器 (srcsrv.dll) 获取代码。将源服务器诊断消息打印到输出窗口
启用源服务器支持时,此设置打开诊断显示。为断点和当前语句突出显示整个行
调试器突出显示断点或当前语句时,会突出显示整个行。
勾选上时否则
要求源文件与原始版本完全匹配
告知调试器验证源文件是否匹配于用于生成正在调试的可执行文件的源代码版本。 如果版本不匹配,则会提示您查找匹配源。 如果未找到匹配源,则在调试过程中不会显示源代码。将所有输出窗口文本重定向到即时窗口
将通常显示在“输出”窗口中的所有调试器消息改为发送到“即时”窗口。
不勾选时勾选后
到
在变量窗口中显示对象的原始结构
关闭所有对象结构视图自定义。在模块加载时取消 JIT 优化(仅限托管)
在附加调试器的情况下,加载模块并编译 JIT 后,禁用托管代码的 JIT 优化。 禁用优化可能更易于调试某些问题,尽管这会降低性能。 如果正在使用“仅我的代码”,则取消 JIT 优化会导致非用户代码显示为用户代码(“我的代码”)。启动时若无符号则发出警告(仅限本机)
选定后,如果您尝试对调试器没有其符号信息的程序进行调试,系统将显示警告对话框。如果启动时禁用了脚本调试,则发出警告
选定后,如果在启动调试器时禁用了脚本调试,则会显示警告对话框。当通过 IL 解释(仅托管)进行小型转储调试时,启用功能评估。
启用调试器来解释 IL 操作码,以在调试托管转储时模拟功能评估。自下而上显示并行堆栈关系图
控制“并行堆栈”窗口中堆栈的显示方向。