【问题标题】:Software to monitor events fired from code监控代码触发事件的软件
【发布时间】:2009-03-19 18:40:32
【问题描述】:

我在我认为与鼠标单击事件相关的代码块中遇到问题,但我似乎无法在我的代码中捕获确切的事件。我使用 C# 调试器单步执行我的代码,并且在我的一个事件结束后,代码只是锁定了。

我的帖子的目的是询问是否有任何软件会监视我的进程并让我知道在我按下 F11 键并且代码冻结后触发的事件。我试过 SysInternals 的 procmon.exe 但这并不能告诉我哪些事件正在触发。

【问题讨论】:

    标签: c# events monitoring deadlock


    【解决方案1】:

    你试过 Spy++ 吗?它是 Visual Studio 附带的工具(至少 2003 和 2005 年)。在我默认的 2003 和 2005 安装中,Spy++ 位于: 开始 |程序文件 |微软Visual Studio 200X | Visual Studio 工具 |间谍++

    运行 Spy++ 后,从“搜索”菜单中选择“查找窗口...”。将“Finder Tool”拖到您要观看事件的窗口或控件上,然后单击“确定”。右键单击树中选定的项目,然后选择“消息”。这将打开一个窗口,在消息到达您感兴趣的窗口时显示消息。

    如果 Spy++ 无法满足您的需求,那么 Managed Spy 呢?它看起来像 Spy++,但专门用于托管代码。我没试过。

    [It] 在基于 .NET 的客户端应用程序中显示控件的树状视图。您可以选择任何控件并获取或设置其上的任何属性。您还可以记录控件引发的一组过滤事件。

    【讨论】:

    • @JeffH - 谢谢! Spy++ 让我看到了一个被调用的事件无限循环,但我没有意识到它已经到位。
    • 刚刚试用了 Managed Spy,这个工具也很好用!而且它比 Spy++ 更加用户友好和面向 .NET,这很好。
    【解决方案2】:

    你在使用多线程吗?如果是这样,请尽量避免将控件和其他 Windows 窗体对象传递到窗体线程之外,因为调试器将尝试访问对象的值,这将导致调试器冻结一段时间。

    【讨论】:

      【解决方案3】:

      为什么不使用像log4net 这样的日志记录工具?

      【讨论】:

        【解决方案4】:

        CLRProfiler 可能会做你想做的事。

        工具概述状态

        CLR Profiler 包括许多 非常有用的分配视图 配置文件,包括直方图 分配类型、分配和调用 图表,显示 GC 的时间线 不同的世代和由此产生的 之后托管堆的状态 集合,以及显示的调用树 每个方法的分配和组装 加载。

        此描述中确实出售了内存使用,但确实提到了“调用树”,并且how to use它上的此链接提到了

        调用树视图提供了一个基于文本的、 按时间顺序排列的分层视图 您的应用程序的执行。

        祝你好运。

        【讨论】:

          猜你喜欢
          • 2021-07-11
          • 2020-12-09
          • 1970-01-01
          • 2012-07-20
          • 2010-10-16
          • 2010-11-12
          • 1970-01-01
          • 2019-06-20
          • 1970-01-01
          相关资源
          最近更新 更多