Egal warum man das machen möchte, ich bin nur neugierig zu wissen, ob es möglich ist.
Hier ist mein Code, der nicht funktioniert:
%Vor% Grundsätzlich war ich neugierig zu wissen, wie man die Debugger.Launch()
-Methode verwendet.
Debugger.Launch startet einen Debugger oder tut nichts, wenn einer bereits angehängt ist. Ich glaube, es ist kein Breakpoint. Debugger.Break () wird tatsächlich brechen.
Das Aufrufen von Debugger.Launch () kann je nach Computer verschiedene Dinge bewirken, zum Beispiel wenn Visual Studio installiert ist oder nicht, etc.
Siehe auch einen verwandten technischen Artikel: Vorgehensweise: Starten Sie den Debugger automatisch
Es wird gestartet und ein Debugger an den Prozess angehängt. Verwenden Sie es sicher nicht in der Produktion. Ich denke, dass mögliche Verwendung kann in der lokalen Maschine sein, wenn ein Fehler aufgetreten ist und Sie automatisch debuggen möchten.
Ich denke, du verstehst falsch, was Debugger.Launch()
macht. Es funktioniert wie ein fest codierter Haltepunkt.
Wenn Ihr Programm Debugger.Launch()
erreicht, wird das Just-In-Time-Debugging-Fenster angezeigt (vorausgesetzt, Sie haben Visual Studio auf dem Computer installiert. An diesem Punkt wird Ihr Programm gestoppt - es läuft nicht weiter.
Wenn Sie eine Instanz von VS auswählen, wird sie gestartet und in der Zeile mit Debugger.Launch()
gestoppt, als ob Sie dort einen Haltepunkt treffen würden.
Also gibt es wirklich keinen Grund für die while () Schleife. Sie könnten einfach Debugger.Launch()
aufrufen, wenn Sie das Programm anhalten wollen, um etwas zu sehen.
Aber der Nutzen von Debugger.Launch()
ist fraglich. Sie können viel leichter Breakpoints verwenden, und mit Breakpoints besteht keine Gefahr, dass sie versehentlich im fertigen Produkt verbleiben.