使用 IntelliTrace(智能跟踪) 调试应用程序

IntelliTrace调试我觉得这个功能很强大,以前调试很长得语句时,一不小心就F5跳过,不得不重新运行一次,才能看到过程中的值,vs2010新增加这个功能,可以看到过程中每次执行的值,很方便!很强大

当您进行调试时,IntelliTrace 将在后台收集有关托管应用程序的数据,其中包括来自许多框架组件(例如 ADO.NET、ASP.NET 和 System.XML)的信息。这些 IntelliTrace 事件使开发人员能够查看先前在执行过程中发生的情况,并且最重要的是,能够进行“回溯”以查看应用程序的先前状态,而不必重新启动调试器。当我进入调试器时,我立即看到了按顺序列出的以前收集的 IntelliTrace 事件, IntelliTrace窗口允许按类别或按线程对所收集事件的列表进行筛选。此外,我可以执行基于文本的搜索来查找可快速跳转到的重要事件。由于 IntelliTrace 还会收集异常,因此我可以搜索词条“异常”,列表将进行筛选以列出导致出现 ASP.NET 错误页的异常,既包括在其中引发的异常调出IntelliTrace窗口快捷键Ctrl+D,V


1、默认设置为 仅收集事件(如图1),在 工具--选项-IntelliTrace中可以修改设置

默认情况下,IntelliTrace 配置为仅收集 IntelliTrace 事件。此解决方案开销很低,但不会提供应用程序的完整执行历史记录。如果您需要更深层的信息,则可以配置 IntelliTrace 来收集更多数据。像其他调试器设置一样,IntelliTrace 也可通过“选项”对话框(可从“工具”菜单中访问)进行配置(请参见图 1)。


图1  默认设置


类别 描述和收集的数据
ADO.NET 与针对 SQL 执行查询、执行的命令以及连接字符串相关的事件。
MVC 与 ASP.NET 管道以及请求处理和重定向相关的事件。
控制台 控制台输出。
数据绑定 Windows 窗体数据绑定。
环境变量 对进程中的环境变量进行求值和检索。
文件 创建、删除和访问文件。
手势/
特定动作
用户对 Web 窗体、Windows 窗体和 WPF 中的常见控件执行的操作。除了收集有关与控件的交互的数据之外,单击其中一个事件还会自动将您重定向到相应的事件处理程序。
迟缓初始化 初始化延迟加载的变量。
注册表 创建、删除和查询注册表信息。
服务模型 从 WCF 中进行的 Web 服务调用。
线程处理 用户工作项和并行计算任务的排队。
跟踪 调试器跟踪输出和断言。
用户提示 显示 Windows 窗体和 WPF 消息框以及对话框的结果。
工作流 实例化和完成活动。
XML XML 文件加载。
图 2  重点列出了一些 IntelliTrace 所收集事件的类别。

使用例子,在datagirdview中加载数据:

       private void Form1_Load(object sender, EventArgs e)
        {
            dgvList.Rows.Clear();
            List<Model.m_Car> lst = new BLL.m_Car().GetModelList("i_Flag=0");
            foreach (Model.m_Car item in lst)
            {
                int i = dgvList.Rows.Add(item.vc_name, item.vc_remark);
                dgvList.Rows[i].Tag = item;     
            }
            dgvList.ClearSelection();   //此处加断点
        }

 点击要查看的事件,会看到详细信息(图3),并在局部变量(图4)和调用堆栈(图5)中显示信息

  

图3 智能跟踪窗口(查看数据库访问事件)


图4 局部变量(显示sql语句,数据库连接信息)


图5 调用堆栈(点击相应的调用命令,会定位到源代码中,但是此处没收集调用信息,所以strWhere是未知的)

2、收集事件及调用信息

通过选择“IntelliTrace 事件和调用信息”,可将 IntelliTrace 配置为不仅收集 IntelliTrace 事件,而且在每个方法进入、退出和调用站点时收集调用信息,例如位于这些位置的参数和返回值。

由于存在性能问题,因此默认情况下只会为集合启用定义的 IntelliTrace 事件的一个子集。您可能需要考虑启用的某些事件包括控制台输出、文件访问、迟缓初始化、注册表访问以及线程处理事件。您可以从“选项”对话框的“IntelliTrace 事件”窗格中启用或禁用整个事件类别或个别事件。

图6 收集事件及调用信息,可以回放调用历史

2.1   事件视图,调用视图

还是刚才的例子,启动调试,智能跟踪窗口如图7,和图3不同的是,智能跟踪窗口顶端有《切换到调用视图的按钮》

图7  智能跟踪窗口

点击切换后如图8,显示调用历史信息,通过浏览“调用”视图这种机制,可以快速了解执行历史记录的概况,并在代码库中进行大幅跳转。


图8 调用历史信息

2.2  单步回放历史执行记录控件

在源代码窗口的装订线中会出现这样的控件,能够单步执行应用程序,并且在局部变量窗口看到每一步值的变化


图9


图10

  

图11  也可以通过点击《在此设置调试上下午》,出现图9的控件,执行单步调试

2.3 在 IntelliTrace 中搜索此行, 搜索功能使我能够恰好跳转到特定的函数调用

在编辑器中,我可以右键单击要搜寻的行,并从上下文菜单中选择“在 IntelliTrace 中搜索此行”(请参见图 12)。搜索将开始,并且结果将呈现在编辑器窗口顶部的搜索栏中,请参见图 13)。


图12  搜索功能使我能够恰好跳转到特定的函数调用


图13




参见

http://msdn.microsoft.com/zh-cn/magazine/ee336126.aspx

http://msdn.microsoft.com/zh-cn/library/dd572114.aspx

http://msdn.microsoft.com/zh-cn/library/dd264963.aspx#Open

..


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值