【问题标题】:IntelliTrace Historical Debugging does not jump in Click-EventHandlerIntelliTrace 历史调试不跳转 Click-EventHandler
【发布时间】:2018-09-22 15:04:39
【问题描述】:

我创建了一个带有一个按钮和一个标签的小型 WPF 应用程序。 Button的Click-Eventhandler做

private void Button_Click(object sender, RoutedEventArgs e) {
    var s = this.Height;
    this.lbl.Content = s;
} 

我已激活 IntelliTrace 事件收集。当我运行调试并单击按钮时,我在 IntelliTrace-Event-List 中看到相应的事件:

当我单击“激活历史调试”时,Visual Studio 显示以下内容:

还有这个 StackTrace:

为什么我现在不能跳转到EventHandler Button_Click()?

【问题讨论】:

  • 只需查看你的调试模块窗口,检查是否所有程序集都已加载,作为消息,它意味着在调试期间它无法找到和加载pdb文件。也许您可以尝试在您的项目中删除此引用,然后重新添加它,请同时更改 .net 框架版本,清理并重建您的应用程序,然后启用 Microsoft 符号服务器,再次调试。

标签: c# visual-studio visual-studio-debugging intellitrace


【解决方案1】:

(1) 请在TOOLS->Options->Debugging->Symbols下启用微软符号服务器。

(2)在TOOLS->Options->Debugging下勾选“启用.NET Framework源码步进”和“启用源码服务支持”。

(3) 在你的项目属性->调试下,禁用“启用Visual Studio托管进程”选项,并启用“启用本机代码调试”选项。

然后使用断点调试您的应用程序,查看结果。

更新:

intellitrace 日志中的按钮点击事件不是你想的那样。它不是在跟踪您的代码,而是在跟踪表示框架。 Intellitrace 对事件处理程序一无所知。

但是,您可以通过在事件处理程序中使用跟踪点来实现您想要的。

【讨论】:

  • 问题是,我不想在 PresentationFramework 中跳过,而是在 EventHandler 中跳过,这是我的代码。这是正确加载的。当我放置一个断点并进行“正常”调试时,它工作得很好。
  • @BennoDual,也许你可以分享更多关于你的意思“我不想在 PresentationFramework 但在 EventHandler 中跳过”的信息,此外,我将分享我在我的在我启用某些调试设置后,如果可能,您可以使用相同的设置并再次调试它。我将编辑我之前的答案。
  • 这里有一个指向 ScreenCast 的链接,它显示了我的问题:dropbox.com/s/t45huh705o9rvbo/IntelliTraceScreenCast.mp4?dl=0 当我单击按钮时,它会跳转到 Click-EventHandler 中的断点。还行吧。但是当我激活历史调试时,它不会跳转到我的 Click-Eventhandler。
  • @BennoDual,真正的问题是它需要通过这一步进入 .NET Framework 源代码,因为您没有启用 .NET Framework 调试,所以您会收到警告而不PresentationFramework .pdb 文件,实际上,如果我在之前的答案中启用选项 1 和选项 2,我会得到源不可用的源。但我的理解是,真正的问题是我没有 .net 框架程序集的源代码。
  • 我会下载到我这边测试一下:referencesource.microsoft.com/download.html,如果可以的话,你也可以试试在你这边测试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 2017-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
相关资源
最近更新 更多