尽管我一般不喜欢SO上的讨论/主观帖子,但我真的很欣赏人们放在一起的“Hidden Secrets”帖子。它们提供了您可能现在发现的一些常见错过的工具的概述。
对于这个问题,我想探索Visual Studio .NET调试器。你经常使用或最近发现的VS.NET调试器中有哪些“隐藏的秘密”,希望你早就知道它们?
答案 0 :(得分:22)
我最喜欢的功能之一是断点上可用的"When Hit..."选项。您可以使用变量的值以及许多其他信息打印消息,例如:
$ADDRESS
- 当前说明$CALLER
- 上一个功能名称$CALLSTACK
- 调用堆栈$FUNCTION
- 当前功能名称$PID
- 进程ID $PNAME
- 流程名称$TID
- 主题ID $TNAME
- 主题名称您也可以让它运行宏,但我从未使用过该功能。
答案 1 :(得分:18)
对于.net应用程序System.Diagnostics
有很多有用的调试内容。例如Debugger
类:
Debugger.Break(); // Programmatically set a break point
Debugger.Launch(); // Launch the debugger if not already attached
Debugger.IsAttached // Check if the debugger is attached
System.Diagnostics
也有很多好的属性。我使用的两个是调试器显示属性,用于更改放入本地窗口的详细信息,以及用于跳过不关心调试的代码的逐步属性:
// Displays the value of Property1 for any "MyClass" instance in the debugger
[DebuggerDisplay("{Property1}")]
public class MyClass {
public string Property1 { get; set; }
[DebuggerStepThrough]
public void DontStepInto() {
// An action we don't want to debug
}
}
答案 2 :(得分:18)
您可以右键单击Watch窗口中的对象,然后单击Make Object ID。
它将为该实例分配一个ID号,允许您在复杂的对象图中查看哪些对象引用同一个实例。
答案 3 :(得分:11)
作为一名Web开发人员,他使用与我的前端代码在同一解决方案中的Web服务,我发现"attach" to a process能够节省大量时间。
在我找到这个隐藏的gem之前,我总是要在一些调用Web服务方法的前端代码上设置一个断点并进入它。现在我知道了这个技巧/功能,我可以轻松地在我想要的代码的任何部分设置断点,这样可以节省大量的时间和精力。
答案 4 :(得分:9)
$exception
将显示当前正在处理的异常,即使您没有将Exception
实例分配给命名变量的catch。
答案 5 :(得分:9)
答案 6 :(得分:8)
答案 7 :(得分:7)
您可以将windbg扩展加载到Visual Studio调试器中,并从即时窗口中使用它们。
答案 8 :(得分:6)
正如另一篇文章中所述,Sara Ford正在VS调试器上进行当前系列。
她的博客是VS提示的最佳来源:http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx
答案 9 :(得分:5)
这是一种旧的。如果添加监视表达式err,hr
,则会保存GetLastError()的结果,格式为HRESULT(仅限VC ++调试器)。
答案 10 :(得分:5)
执行暂停时,您可以在代码中上下拖动当前行光标(黄色箭头)。
此外,为了在异常暂停期间启用此功能,您必须先在异常详细信息上单击“启用编辑”。
您还可以通过在以下情况下检查感兴趣的内容,使VS中断处理的异常: Debug-> Exceptions:Thrown column
答案 11 :(得分:4)
一些有用的快捷键。
F11
进入方法。Shift-F11
退出方法。F10
跳过某个方法。答案 12 :(得分:4)
我经常使用的东西:
单击菜单项“Debug | Exceptions”(或简称Ctrl-D,E),您可以在抛出任何异常时启用中断,或选择不中断某些异常。
您可以设置调试器从MS服务器下载一些框架源代码和符号,然后进入框架代码。 (有些库,如System.ServiceModel,尚不可用)。它位于Debugging下的Options窗口中。请参阅MSDN How-To。
您可以使用VS.NET调试器来调试在IE中运行的Javascript。您只需要安装IE javascript调试器,并在IE的设置中启用javascript调试。然后在JS错误上会弹出“你想调试”对话框,你可以选择在VS.NET中调试。
答案 13 :(得分:1)
如果文件属于另一个解决方案(外部文件),则可以在源文件中打开并放置断点。调试器仍然可以达到断点。无需打开另一个Visual Studio实例来调试外部文件。有助于调试您提供的Web服务。只要所有源都是最新的并且已编译,这就可以工作。