Die Visual Studio 2010 Ultimate-Version verfügt über die neue Funktion IntelliTrace (intelligente Ablaufverfolgung). IntelliTrace wurde in Visual Studio eingeführt, um das Debuggen von .NET-Anwendungen zu beschleunigen. Es verfolgt voreingestellte Ereignisse und Methoden während des laufenden Prozesses und wird effektiv an den Debugging-Executor übergeben Dadurch werden der Status und verschiedene Informationen des Programms während der Ausführung schnell übermittelt, um Entwicklern dabei zu helfen, das Programm besser zu debuggen und Probleme schnell zu finden. Tatsächlich hat uns Microsoft Visual Stuido vor Visual Studio 2010 sehr gut dabei geholfen, Debugging-Tools zu erben, z. B. Variablen zu überwachen, Stapel anzuzeigen usw. und das Festlegen von Haltepunkten für das Debuggen in einem Schritt usw. zu ermöglichen. All dies ist für Entwickler sehr hilfreich, um den Status des Programms in verschiedenen Ausführungsprozessen zu verstehen und im Voraus zu erkennen, ob es gemäß der tatsächlichen Logik ausgeführt wird. Darüber hinaus können wir das Problem finden, indem wir den Programmstatus nach Haltepunkten überwachen. Das Problem dabei ist, dass einige logische Fehler auftreten können, bevor der Haltepunkt ausgeführt wird, und diese möglicherweise nicht nachvollziehbar sind. Entwickler müssen das aktuelle Debuggen stoppen, den Haltepunkt zurücksetzen und mit dem Debuggen beginnen. Dieser experimentelle Prozess dauert oft viele Male, um die richtige Position zum Festlegen des Haltepunkts zu finden. IntelliTrace verfolgt auf intelligente Weise automatisch einige Debugging-Informationen und den Programmstatus und zeigt sie den Entwicklern an, sodass Programmierer weniger geeignete Haltepunkte finden müssen, um den laufenden Status des Programms zu verfolgen und zu überwachen.
Visual Studio bietet uns zwei Möglichkeiten, die Inhaltsquelle der erfassten Informationen zu steuern. Die eine sind nur IntelliTrace-Ereignisse, die nur Daten im Zusammenhang mit intelligenten Ablaufverfolgungsereignissen und Debugging-Interrupts erfassen Ergänzung zu IntelliTrace Verschiedene Daten zum Ein- und Ausstieg eines Methodenaufrufs außerhalb von Ereignissen. Sehen wir uns an, wie Sie die Ablaufverfolgungsoptionen von IntelliTrace in Visual Studio 2010 festlegen.
Gehen Sie zu Extras -> Optionen -> IntelliTrace. Es ist standardmäßig aktiviert, erfasst jedoch nur Ereignisse, da die Erfassung von Ereignissen kostengünstig ist. Wenn Sie jedoch beginnen, alle diese Anrufinformationen zu verfolgen, zeigt sich der wahre Wert. Bei jedem Debuggen wird IntelliTrace angezeigt. Sie können dieses historische Debugging-Tool während des dynamischen Debuggens verwenden. Angenommen, ich bin dort und habe einen Haltepunkt, aber ich möchte diesen Haltepunkt sichern und neu gestalten. Ich kann IntelliTrace verwenden, um diese Aufgabe auszuführen.
Andere, die ihre Debugprozesse mit IntelliTrace erfasst haben, können Ihnen die Aufzeichnungen sowie DLL- und PDB-Dateien senden und Sie können ihre Prozesse wiedergeben. Der Prozess geht möglicherweise in die Datenbank ein (Sie haben die Datenbank nicht), er ist möglicherweise so eingerichtet, dass Sie ihn nicht kopieren können, er befindet sich möglicherweise in einem Netzwerk, das Sie nicht erreichen können, aber Sie haben keinen Zugriff darauf. Sie müssen sich keine Sorgen machen, denn Sie verfügen über die Datensätze sowie die DLLs- und PDBS-Dateien, die Sie wiedergeben können.
Natürlich ist es besser, den Quellcode zu haben, denn dann können Sie den Code sehen, als würden Sie ihn auf Ihrem eigenen Computer debuggen. Dies ist ideal für mysteriöse Störungen, die auf Ihrem Computer gut funktionieren, auf den Computern anderer Leute jedoch nicht. Es eignet sich auch sehr gut für Multithread-Situationen, und wenn Sie die Anwendung durchgehen, verschwindet der Softwarefehler, aber bei normaler Ausführung tritt der Softwarefehler erneut auf.
Standardmäßig erfasst IntelliTrace nur IntelliTrace-bezogene Ereignisse. Dies dient dazu, die erfassten Daten klein zu halten und die Auswirkungen auf die Leistung minimal zu halten. Wenn Sie sich dafür entscheiden, bei Methodenaufrufen auch Daten zu sammeln, ist die Auswirkung auf die Leistung zusätzlich zu der Vergrößerung des von den temporär gesammelten Daten belegten Speicherplatzes auch größer. Obwohl die erfassten Details unterschiedlich sind, erfassen beide Methoden einige gemeinsame Daten. Beispielsweise werden immer Systeminformationen erfasst, wenn der Erfassungsprozess zum ersten Mal gestartet wird, Ereignisse beim Laden und Entladen von Modulen, Start- und Endzeiten von Threads usw. Wenn Modul- und Thread-Ereignisse auftreten, können die Informationen im Modul- und Thread-Debugging-Fenster korrekt aktualisiert werden. Darüber hinaus werden in jedem Modus auch Daten an Debugging-Haltepunkten gesammelt, und die gesammelten grundlegenden Datentypen und Objekte werden während des Debuggens überprüft und überprüft, und ihre Werte können geändert werden.
Im Allgemeinen ist der IntelliTrace-Debugger maßgeschneidert für Programmentwickler. Durch seine einzigartige historische Debugging-Funktion bietet er Entwicklern eine Funktion zur Nachverfolgbarkeit von Prozessen. Was soll ich beispielsweise tun, wenn vor 10 Minuten während der Entwicklung eine Ausnahme im Programm aufgetreten ist? Wenn dies in der Vergangenheit normalerweise durch den manuellen Aufruf der Debug.Write-Anweisung erfolgte, ist dies jetzt nicht mehr erforderlich! Da die historischen Debugging-Funktionen in vielen Entwicklungstools sehr ähnlich sind, können Programmierer über IntelliTrace in der offiziellen Version von VS2010 nicht nur den aktuellen Status des Programms sehen, sondern auch unter bestimmten Umständen generierte Ereignisse überprüfen und sogar Fehlerquellen isolieren Bewerbungshistorie. Daher kann die offizielle Version von VS2010 nach dem Aktivieren des historischen Debuggens den Aufrufstapel und die zugehörigen Variablen erfassen. Wir können bis zu 10 Minuten oder länger vor dem Speichern des Programms zurückgehen, um verschiedene Situationen zu überprüfen, in denen Ausnahmen und Fehler im Programm auftreten. Da das Programm standardmäßig nur Schlüsseltypen speichert, hat der Entwickler die Möglichkeit, alle Parameter, Objekte und globalen Variablen zu protokollieren. Daher zeigt IntelliTrace während der Programmausführung aktiv wichtige Ereignisse an, z. B. Codeausnahmen, Dateizugriff, Echtzeit-Debugging usw.