【问题标题】:How to view active .Net events while stepping through code?如何在单步执行代码时查看活动的 .Net 事件?
【发布时间】:2018-08-30 16:02:25
【问题描述】:

在单步执行代码时,如何跟踪当前“活动”或正在处理的事件。

问题

当我在一个相当大的应用程序中调试代码(单步调试)时,突然间我发现正在运行的代码正在运行与我正在故障排除的代码无关的函数中的代码。我花了相当多的时间来弄清楚为什么我发现自己在函数中单步执行代码,而这些函数远远超出了我正在调试的代码。

事实证明,在应用程序启动时,处理程序被添加到某些控件以及计时器控件。定时器控件每 5 分钟左右触发一次事件。采取某些操作时会触发其他事件,但是我不知道是什么导致调试器进入某些功能,因为没有指示或“提示”告诉我事件已触发,这就是为什么我现在正在涉足其他职能。

当事件以我上面提到的方式触发时,我如何知道发生了什么?

注意

这不是关于如何在代码中添加处理程序或删除处理程序的问题。

【问题讨论】:

    标签: vb.net visual-studio-2015


    【解决方案1】:

    所以基本上计时器仍然在与主逻辑相同的线程中运行。每次完成一个功能/事件并且窗口进入等待部分,在该部分中读取 unser 输入并启动事件,计时器将触发。当其他事件忙时,它们不会运行。如果您使用后台工作者或启动第二个线程。它们将在您当前的步骤之间运行,并且视觉工作室将从一个跳到另一个。有一个线程窗口可以跟踪所有活动线程,但这只是提供了一个线索。有时从一个功能跳到另一个功能仍然很烦人。我的建议是对那些一直困扰您的函数使用调试器隐藏属性。

    如何找到线程窗口:

    How can I view Threads window in Visual studio?

    如何使用 Debugger Hidden:

    https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.debuggerhiddenattribute?redirectedfrom=MSDN&view=netframework-4.7.2

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/cf20736c-cbfb-4919-b495-ea9a9235f9e5/debuggerhiddenattribute-example?forum=csharpgeneral

    【讨论】:

      猜你喜欢
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      相关资源
      最近更新 更多