c # programmgesteuert den Debug-Modus erzwingen

8

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.

    
user420667 18.09.2011, 05:27
quelle

3 Antworten

15

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

    
Simon Mourier 18.09.2011, 07:27
quelle
3

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.

    
Gregory Nozik 18.09.2011 05:40
quelle
3

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.

    
HiredMind 18.09.2011 06:27
quelle

Tags und Links