Gibt es eine Möglichkeit in Visual Studio (2008, wenn es wichtig ist), dass ich im Debug / Break-Modus den Inhalt einer Variablen in eine Text / XML-Datei schreiben kann?
Das Szenario ist, dass ich einen langen Prozess im Debug laufen habe und ich zu spät erkannt habe, dass ich nicht genug Details über die Ereignisse protokolliert habe, die der Prozess überwacht hat, aber zum Glück ist noch eine Historie innerhalb einer Variablen verfügbar der Code.
Ich könnte durch die Zehntausende von Elementen in dieser Liste gehen, aber es wird nicht bestehen bleiben, sobald ich auf die Anwendung stoppe ... es gibt keine offensichtliche Kontextoption dafür, aber gibt es eine Möglichkeit, eine bessere Weg als Handbuch? Oder gibt es keine Hoffnung und ich muss nur stoppen, die Logging-Funktion neu toolen und das Ding erneut ausführen?
Abgesehen von dem Versuch, einen Haltepunkt zu treffen, den Code ändern und neu schreiben, um einen besseren Logger zu erstellen, gibt es eine Möglichkeit, diese In-Memory-Daten nicht zu verlieren?
Eine Möglichkeit wäre, das unmittelbare Fenster zu verwenden (Menü Debug - & gt; Windows - & gt; Sofort ). In dem nun erscheinenden Fenster können Sie das "?" um den Wert einer Variablen abzufragen.
Angenommen, Ihre Verlaufsvariable ist eine Zeichenfolge, deren Inhalt Sie anzeigen, indem Sie im folgenden Fenster Folgendes eingeben:
%Vor%Sie können die Ausgabe von dort in eine Textdatei kopieren und einfügen oder alternativ Visual Studio dazu auffordern, alle Ausgaben des Befehlsfensters zu protokollieren. Um dies zu tun:
%Vor% Log
ist ein Alias für Tools.LogCommandWindowOutput
und akzeptiert die folgenden Parameter:
Sehen Sie sich den MSDN-Artikel Befehlsausgabe des Befehls "Protokoll" an für weitere Informationen.
Ich hoffe, das hilft.
Danke an Richards Antwort , das funktioniert für mich.
System.IO.File.WriteAllBytes(@"c:\Temp\temp.txt", myVar);
Stellen Sie sicher, dass C:\Temp
existiert.
Der Grund für das Schreiben in einen Ordner und nicht für den Stamm C:\
ist UnauthorizedAccessException
zu vermeiden, wenn Visual Studio nicht als Administrator ausgeführt wird.
Ich denke, dass meine Antwort ziemlich genau der von JamesPickrell entspricht, aber aus dem Immediate Window könnte man auch so etwas machen:
%Vor%Dies würde den Inhalt der Variable "history" in eine Datei namens c: \ temp.txt ausgeben.
Tags und Links visual-studio debugging