Is there a way in Visual Studio (2008 if it matters) that I can, in debug/break mode, write the contents of a variable to a text/XML file?
The scenario is that I have a long process running in debug and I have realised too late that I haven't logged enough detail about the events that the process has been monitoring, but fortunately a history is still available within a variable in the code.
I could trawl through the tens of thousands of items in this list, but it's not going to persist once I hit stop on the application ... there is no obvious context option for this, but is there any way, a better way than manual? Or is there no hope and I just need to hit stop, re-tool the logging function and run the thing again?
Aside from trying to hit a breakpoint, modify the code and re-write to make a better logger, is there a way of not losing that in-memory data?
I found useful/demonstrative/shareable to save the variable as a json string to the file. From Immediate Window enter the following:
I think that my answer is pretty much the same as JamesPickrell's, but from the Immediate Window you could also do something like this:
This would output the content of the "history" variable to a file called c:\temp.txt.
Thanks to Richard's answer, this is working for me.
System.IO.File.WriteAllBytes(@"c:\Temp\temp.txt", myVar);
Make sure that
C:\Temp
exists.The reason for writing to a folder and not to the root
C:\
is to avoidUnauthorizedAccessException
when not running Visual Studio as administrator.One way to do it would be to use the immediate window (menu Debug -> Windows -> Immediate). In the window that appears you can use the "?" to query the value of a variable.
Assuming your history variable is a string you view its contents by typing the following in the immediate window:
You could copy and paste the output from there into a text file or alternatively ask Visual Studio to log all command window output. To do this type:
Log
is an alias forTools.LogCommandWindowOutput
and accepts the following parameters:Check out the MSDN article Log Command Window Output Command for more information.