在 Visual Studio Enterprise 中使用 IntelliTrace 查看事件(C#、Visual Basic)

你可以使用 IntelliTrace 来收集关于特定事件或事件类别的信息,或收集关于除了事件外的单个函数调用的信息。 下列过程演示如何执行此操作。

可以在 Visual Studio Enterprise 版(但不可在 Professional 或 Community 版)中使用 IntelliTrace。

配置 IntelliTrace

你可以尝试仅使用 IntelliTrace 事件进行调试。 IntelliTrace 事件是调试器事件、异常、.NET Framework 事件和其他系统事件。 你应在开始调试之前打开或关闭特定事件以控制 IntelliTrace 记录的事件。 有关详细信息,请参阅 IntelliTrace 功能

  • 打开 IntelliTrace 事件以进行文件访问。 转到“工具”>“选项”>“IntelliTrace”>“IntelliTrace 事件”页,然后展开“文件”类别。 检查 “文件” 事件类别。 这将导致检查所有文件事件(访问、关闭、删除)。

创建应用程序

  1. 创建 C# 控制台应用程序。 在 Program.cs 文件中,添加以下 using 语句:

    using System.IO;
    
  2. 在 Main 方法中,创建 FileStream ,从其中进行读取、将其关闭,然后删除该文件。 添加另一行,添加该行的唯一目的是留出设置断点的位置:

    static void Main(string[] args)
    {
        FileStream fs = File.Create("WordSearchInputs.txt");
        fs.ReadByte();
        fs.Close();
        File.Delete("WordSearchInputs.txt");
    
        Console.WriteLine("done");
    }
    
  3. Console.WriteLine("done");上设置断点

启动调试并查看 IntelliTrace 事件

  1. 照常启动调试。 (按“F5”或单击“调试”>“启动调试”。)

    提示

    在调试时使“局部变量”和“自动”窗口保持打开状态,以查看并记录这些窗口中的值 。

  2. 执行在断点处停止。 如果未显示“诊断工具”窗口,则单击“调试”>“Windows”>“IntelliTrace 事件”。

    “诊断工具” 窗口中,找到 “事件” 选项卡(应该看到 “事件”“内存使用”“CPU ” 三个选项卡)。 “事件” 选项卡显示按时间排序的事件列表,以调试器中断执行之前的最后一个事件结尾。 你应会看到一个名为 “访问 WordSearchInputs.txt” 的事件。

    Screenshot of the Visual Studio code window. Execution is stopped at a breakpoint and the Events tab in the Diagnostic Tools window lists events.

  3. 选择该事件以展开其详细信息。

    Screenshot of the Events tab in the Visual Studio Diagnostic Tools window. An event is selected and expanded to show it's details.

    你可以选择路径名链接以打开文件。 如果完整的路径名不可用,则将显示 “打开文件” 对话框。

    单击“激活历史调试”,这会将调试器的上下文设置为收集所选事件的时间,并且会在“调用堆栈”、“局部变量”和其他参与的调试器窗口中显示历史数据 。 如果源代码可用,则 Visual Studio 会将指针移到源窗口中的相应代码,以便你可以检查它。

    Screenshot of the Visual Studio code window. Execution is stopped at a breakpoint, an event is selected, and the corresponding code line is highlighted.

  4. 如果找不到 bug,请尝试检查导致 bug 的其他事件。 还可以让 IntelliTrace 记录调用信息,以便你可以单步执行函数调用。

你可以将 IntelliTrace 的某些高级功能与历史调试配合使用: