您的位置:首页 > 编程语言

在 Visual Studio 中使用代码映射可视化和了解代码

2014-04-02 09:42 295 查看
官方地址:http://msdn.microsoft.com/zh-cn/library/jj739835.aspx

您可以将代码中的关系映射到 Visual Studio 旗舰版。 在您创建编码映射后,它们会显示在代码编辑器旁边。 这使你可以将精力集中在你的任务上,因为你可以在工作时查看你在代码中的位置。



代码图表明代码关系,其显示在代码编辑器的旁边。 绿色箭头显示代码中的光标位置。 您可以在映射中进行注释,就像在纸上记录一样。

代码图有助于防止您在大型代码库、不熟悉的代码或旧代码中感到迷惑。 例如,调试时可能必须查看跨许多文件和项目的代码。 代码图可帮助您在代码中导航,并查看代码间的关系。 您不必记住所有这些代码,跟踪文件或单独绘制纸质关系图。 如果必须中断您的工作,代码映射可帮助刷新您正在使用的代码有关的内存。

监视运行中的代码映射:使用 Code Map 理解复杂代码 (Channel 9)

要求

此类版本之一:

Visual Studio Ultimate 2013 可通过代码编辑器或“解决方案资源管理器”创建代码。


 说明
在您与使用高级专业版或专业版的其他人共享映射时,请确保映射上的所有项目可见,例如隐藏项目、展开的组和跨组链接。
Visual Studio Premium 2013 或 Visual
Studio Professional 2013可打开代码映射、进行有限的编辑并浏览代码。

使用 Visual C# .NET 或 Visual Basic .NET 代码的解决方法

了解问题

假定你正在处理的绘图程序中有 bug。 要重现 Bug,请打开 Visual Studio 旗舰版中的解决方案并按 F5 开始调试。

当您绘制了一条线并选择“撤消上次笔划操作”时,在您绘制下一条线前却什么也没有发生。



因此您开始通过搜索 Undo 方法进行调查。 您会在 PaintCanvas 类中发现它。



开始映射代码

现在您开始映射 undo 方法及其关系。 从代码编辑器,可以添加 undo 方法及其引用到新代码映射的字段。 当您创建新映射时,可能需要一些时间来为代码编制索引。 这有助于加快后续操作的运行速度。




 提示
绿色突出显示代表添加到映射的最后一项。 绿色箭头显示代码中的光标位置。 项目之间的箭头表示不同的关系。 您可以通过检查相应的工具提示来详细了解映射上的项。


浏览并检查映射中的代码

要查看每个字段的代码定义,请双击映射上的字段,或选择字段并按 F12。 绿色箭头在映射的各项间移动。 你的光标在代码编辑器中也会自动移动。






 提示
您还可以在代码编辑器中移动光标以在图上移动绿色箭头。
了解代码部分之间的关系

现在您想了解其他何种代码与 history 和 paintObjects 字段交互。 您可以将引用这些字段的所有方法添加到映射。 您可以通过映射或代码执行此操作。



更改布局以重新排列关系流并使映射更容易读取。 您还可以拖动项以在图中移动它们。




 提示
默认情况下,“增量布局”处于打开状态。 当你添加新的项时,这会尽可能少地重新排列映射。 要在你每次添加新项时重新排列整个映射,请关闭“增量布局”。


让我们检查这些方法。 在映射中,双击“PaintCanvas”方法,或选择此方法并按“F12”。 您将了解到此方法会以空列表的形式创建 history 和paintObjects。



现在请重复相同的步骤检查 clear 方法定义。 您将了解到 clear 会通过 paintObjects 和 history 执行某些任务。 然后将调用 Repaint 方法。



现在请检查 addPaintObject 方法定义。 它还使用 history 和 paintObjects 执行某些任务。 它还调用 Repaint。



通过检查映射找到问题

似乎修改 history 和 paintObjects 的所有方法都调用 Repaint。 但即使 undo 修改了同一字段,undo 方法还是未调用 Repaint。 因此您认为可以通过从 undo调用 Repaint 解决此问题。



如果您没有可显示此缺失调用的映射,要找到此问题或许更加困难,尤其是当具有复杂代码时。

共享发现和后续步骤

在您或其他人修复此 Bug 之前,您可在映射上针对此问题和解决方法进行记录。



例如,可以使用颜色将注释添加到映射和标记项。



如果已安装 Microsoft Outlook,则可以将映射以电子邮件的形式发送给其他人。 您还可以将映射导出为图像或其他格式。



解决该问题并显示您所做的工作

要修复此 Bug,你需要将 Repaint 的调用添加到 undo。



要确认你的修复,则重新启动你的调试会话并尝试重现 Bug。 现在,根据需要选择“撤消上次笔划操作”,并确定做出正确修复。



您可以更新映射以显示所做的修复。



你的映射现在显示“撤消”和“重新绘制”之间的链接。




 说明
更新映射时,您可能会看到显示用于创建映射的代码索引已更新的消息。 这意味着有人更改了代码,使你的映射与当前代码不匹配。 这不会阻止你更新映射,但你可能需要重新创建映射以确认它与代码匹配。
现在您已完成调查。 你通过映射代码成功找到并解决了问题。 您还拥有可帮助您浏览代码的映射,请记住您所学的内容并借助您掌握的步骤解决问题。

请参见


概念

在 Visual Studio 中使用调用堆栈可视化和调试代码执行
可视化和了解代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: