是否有任何工具可用于在附加到发布版本时调试信息?

时间:2016-05-11 16:38:24

标签: c# visual-studio debugging release

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

  

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我终于可以使用WPF Spy Utility Snoop来解决这个问题。它给了我感兴趣的IsLoaded属性的值。有些同行也提到使用Ants Memory Profiler,但是它非常昂贵并且使用起来并不是那么简单。