2009-08-26 24 views
7

在调试/中断模式下,我可以在Visual Studio(2008年)中将方法的变量写入文本/ XML文件吗?将观看的Visual Studio变量输出到文件

这种情况是,我有一个很长的进程在调试中运行,我意识到已经太迟了,我没有记录有关进程已经监视的事件的足够详细信息,但幸运的是历史记录仍然可用在代码中。

我可以浏览列表中的数以万计的项目,但是一旦我停止了应用程序,它就不会持续......没有明显的上下文选项,但有没有办法,比手动更好的方式?或者是没有希望,我只需要停下来,重新设置日志记录功能并再次运行该事件?

除了尝试命中断点,修改代码并重新编写以创建更好的记录器之外,有没有一种不会丢失内存数据的方法?这样做是使用即时窗口

回答

17

的一种方式(菜单调试 - >的Windows - >立即)。在出现的窗口中,您可以使用“?”查询变量的值。

假设你的历史变量是你在即时窗口中键入以下查看其内容的字符串:

?history 

您可以复制,并从那里输出粘贴到文本文件或可替换地问Visual Studio中记录所有命令窗口输出。要做到这一点类型:

>log "c:\test.log" 
?history 
>log off 

LogTools.LogCommandWindowOutput一个别名,接受下列参数:

Tools.LogCommandWindowOutput [filename] [/on|/off] [/overwrite] 

退房MSDN文章Log Command Window Output Command以获取更多信息。

我希望有帮助。

+0

非常有帮助,谢谢! – Gaz 2011-08-03 12:54:34

+0

请记住在“?”之间添加空格和“历史” – Ning 2016-12-12 14:12:42

2

我想,我的回答几乎是一样JamesPickrell的,但是从即时窗口,你也可以做这样的事情:

My.Computer.FileSystem.WriteAllText("c:\temp.txt",history,True) 

这将输出“历史”变量的内容到名为c:\ temp.txt的文件。

3

感谢Richard's answer,这对我有用。

System.IO.File.WriteAllBytes(@"c:\Temp\temp.txt", myVar);

确保C:\Temp存在。

写入文件夹而不写入根目录C:\的原因是,在未以管理员身份运行Visual Studio时,应避免使用UnauthorizedAccessException

相关问题