Visual Studio 2010 之调用继承树Call Hierarchy

来源:互联网 发布:mac install repo 编辑:程序博客网 时间:2024/06/07 18:38

【篇首语】看到VS2010的这个功能,我真的是泪流满面啊!因为早在开博之初,我就提出过这个设想,调用继承树!不信,您可以自己去找找。当时我写博文只是幻想中建议可以有这样一个功能。没想到居然梦想成真了!!!


写程序离不开调试,调试离不开理清程序的执行流程。在以前的Visual Studio版本中,我们几乎都是调试的时候通过调用栈来查找函数间的调用关系,帮助调试的。调用栈虽然好用,但是只能在调试时使用,同时也只能串行,只有一条执行路径。另外,随着现代应用程序越来越复杂,调用栈已经无法满足我们分析程序逻辑的需要。所以在Visual Studio 2010中,微软为我们提供了新的程序逻辑分析工具:调用继承树(Call Hierarchy)窗口。

  • 体验调用Visual Studio继承树窗口给我们带来的便利,我们可以打开Visual Studio 2010 CTP虚拟机中自带的示例项目DinnerNow – Management。在解决方案浏览器中,我们双击PSWorkflowMonitor.cs这个文件,将其在代码编辑器中打开。然后找到其中的 LoadWorkflowInstance函数,在这个函数上右键单击,在弹出的上下文菜单中选择“View Call Hierarchy”:

这样,我们就可以打开LoadWorkflowInstance函数的调用Visual Studio继承树窗口:

在调用Visual Studio继承树窗口中,我们可以像“爬树”一样,在这棵调用继承树的各个节点和对应的代码之间任意跳转:

◆跳转到代码

在调用Visual Studio继承树窗口中,我们可以在函数上点击右键,选择弹出菜单中的“Go To Definition”,就可以直接跳转到相应的代码。

同时我们可以注意到调用继承窗口的右边是“Detail Pane”,其中显示了当前选中函数所有的调用位置,我们只要双击其中的调用记录,就可以跳转到相应的函数调用位置。

◆创建或者删除调用继承树

当程序比较复杂的时候,我们的调用继承树也会“枝繁叶茂”,这样不利于我们的分析。在这种情况下,我们就可以把一个根节点中我们感兴趣的子节点设置为新的根节点,这样可以简化调用继承的深度,更加利于我们的分析。

◆改变调用继承搜索的范围

默认情况下,调用继承会搜索整个解决方案中的调用情况,如果我们的解决方案比较复杂,这就会使得调用继承树非常复杂,引入很多意义不大的调用关系。为了简化调用继承树,我们可以改变调用继承的搜索范围,将其限制在解决方案,当前项目或者当前文档。

原创粉丝点击