【问题标题】:Are there any tools I can use to debug information while attached to a release version?在附加到发布版本时,是否有任何工具可以用来调试信息?
【发布时间】:2016-09-07 04:58:54
【问题描述】:

在虚拟机上,我无意中重现了每年只出现一次或两次的问题。该软件处于只要应用程序处于活动状态并且正在运行,我就可以重现该问题的状态。唯一的问题是一切都是在发布中构建的。因此,当我使用 Visual Studio 进行调试并尝试查看一些值时,我会收到以下消息:

无法计算表达式,因为当前方法的代码已经过优化。

据我所知,解决此问题的唯一方法是构建调试。不幸的是,这是不可能的,因为一旦我关闭应用程序并在调试而不是发布中重新启动它,我可能永远没有机会再次重现此问题。

是否有任何工具或任何我可以做的事情来使软件保持当前状态,同时能够检索我感兴趣的一些值?同样,这是一个发布版本,所以我意识到缺少很多必要的调试信息。我确实有我感兴趣的程序集的发布 pdbs / 源代码。这不太重要,但我正在尝试查看 Window 对象的 IsLoaded 属性以及可能的其他一些属性。

【问题讨论】:

    标签: c# visual-studio debugging release


    【解决方案1】:

    也许你可以试试 Project Properties - Build - Advanced - Debug info = Full?

    根据this 的回答,我认为这将允许您附加调试器。线程中的其他答案对此选项的影响有不同的答案,但可能值得一试。

    【讨论】:

    • 对于发布和调试,我将该属性设置为完整。所以不幸的是,这对我来说并没有什么不同。
    【解决方案2】:

    我终于能够通过使用 WPF 间谍实用程序 Snoop 来解决这个问题。它为我提供了我感兴趣的IsLoaded 属性的价值。一些同行也提到使用Ants Memory Profiler,但它非常昂贵,而且使用起来也不是那么简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 2013-04-27
      • 1970-01-01
      相关资源
      最近更新 更多