本篇包括tip271-tip290
http://www.watch-life.net/visual-studio/visual-studio-2008-tip-day-28.html
注:作者的tip编号发生错误,同#277 直接跳到了#288 ,中间一大截都没有(#278-#287),具体是什么原因,不得而知了。为了保持和原文章的一致,也沿用跳转的编号。
原文链接:What the Enable Address-Level Debugging option does
操作步骤:
菜单:工具+选项+调试+常规,有个"启用地址级调试"项,如果启用该项,将会得到另外三个调试工具:“反汇编”窗口、“寄存器”窗口和地址断点。
评论:启用地址级调试非常有用,可特别针对一些深层次的bug,容易找到问题所在。
原文链接:How to show the disassembly automatically or not at all
操作步骤:
菜单:工具+选项+调试+常规,在选中“启动地址级调试”后,选项“源代码不可用时显示反汇编”变成可用的。
如果此项没有选中,你将看到如下对话框(当前位置的代码是不可用的,是否自动启动反汇编?)
在对话框中选中“自动显示反汇编”项,就会显示代码的反汇编内容。
评论:对很熟悉反汇编的人来说,这个功能很有用,对于不熟悉的,看反汇编就好比看天书了。
原文链接:You can use Breakpoint Filters to break the right process
操作步骤:
菜单:工具+选项+调试+常规,选中“启用断点筛选器”项。
对于多个实例运行在一个应用上时,如果想中断其中一个实例的进程,就可以用点点筛选器。 右键单击断点,选择“筛选器”
评论:这个功能对多进程的调试非常有用。
原文链接:You can disable the Exception Assistant
操作步骤:
如果你单击一个异常,异常助手对话框就会弹出。如下图所示,就是一个“分母为零”的异常发生后出现异常助手。
如果你不想看见异常助手,可以如下操作:
菜单:工具+选项+调试+常规,不选中“启用异常助手”项。
如果没有选中该项,单击断点时,你将获得一个典型的未处理的异常信息。
评论:我觉得还是启用的好,对解决异常错误很有帮助。
原文链接: You can examine the exception object from the exception assistant
单击这个链接,将打开“查看详情”的对话框,显示有关异常内容。
评论:查看异常的详情,对处理异常提供非常有用的提示。
原文链接: you can copy the exception details with one click from the exception assistant
操作步骤:
在异常助手对话框中,有个“复制异常详情到剪贴板”的链接,单击此链接,可以把异常的详情复制到剪贴板。
评论:复制有关异常的内容,对测试人员记录异常信息很有用。
原文链接:What unwinding the call stack on unhandled exceptions does
操作步骤:
菜单:工具+选项+调试+常规,选中“启用异常助手”项,在此项下面的“未处理的异常上调用堆栈”项变得可用。
如果没有启动该项,意味着不会自动调用堆栈。启用该项,如下所示异常的变量出现在局部变量窗口。
评论:此功能可以很详细查看有关堆栈中的异常变量。
(注:有关#278-#287 在作者的博客缺失,原因不明。)
原文链接:How to show External code
操作步骤:
调试状态,在“调用堆栈”窗口,单击右键,选择“显示外部代码”,则会显示非用户的代码(系统代码)即外部代码
评论:显示外部代码,可以从net 底层系统来调试程序了。说不定你也许可以找到net框架的bug呢.
操作步骤:
菜单:工具+选项+调试+常规,有个“启用‘仅我的代码’”项。
那么那些是“你的”代码呢?
1、你的代码被优化过。
2、你的代码没有符号
3、你的代码没有标记DebuggerNonUserCodeAttribute
例如在一个解决方案里有两个项目:ClassLibrary1 and ConsoleApplication1,ConsoleApplication1调用ClassLibrary1 的类在控制台显示一个“hello world”,在生成的时候比较ClassLibrary1为优化,在ConsoleApplication1中封装Console.WriteLine方法地方设置一个断点,然后单步调试,到达断点时候,发现在断点处中断了,继续按F11,并没有进入方法内部,而是跳到了下一行。
评论:只调试我的代码,让你的更专注。
原文链接:How to optimize your code for a build
操作步骤:
针对c#,在项目属性中,选择“生成”标签页选中“优化代码”。
菜单:工具+选项+调试+常规,不选中“在模块加载中禁止jit优化’”项。
随着优化代码选项被选中和禁止模块加载jit优化,在上篇例子中的ClassLibrary1被优化了,从而不再是你的代码了。
评论:调试的选项非常丰富,需要学习的东东很多哟。
更多文章见:守望轩[http://www.watch-life.net/]