Debugging: Anhängen an Process for Console App, die in cmd.exe ausgeführt wird
Wie Sie "Attach to Process..." für eine Konsole-Anwendung, das ist, die von einem CMD-Fenster und nicht gestartet von F5? Der Grund warum ich Frage ist, weil die Anwendung BefehlszeilenArgumente, und ich will eine echte Erfahrung.
Habe ich noch anfügen CMD.exe
, aber kein Glück, oder das setzen eines break-point mit Console.ReadKey()
mit auch kein Glück. Ich bin irgendwie ratlos hier.
Ist das möglich?
Kommentar zu dem Problem
Nur falls Sie sich nicht bewusst sind, können Sie den set-Befehl Linie Argumente, die in Visual Studio verwendet werden, auf Ihre app, wenn Sie drücken Sie die F5-Taste. Rechts-klicken Sie auf das project -> Eigenschaften -> Debug -> Optionen -> Befehl Linie Argumente.
@Jacob G, ja ich kann das machen, aber es ist wirklich ungeschickt und wenn ich ändern will die Argumente, die ich haben zu Graben, durch Dialoge
Befestigung an cmd.exe ist nutzlos, da Sie Ihre Konsole-Anwendung läuft in einem eigenen Prozess, nicht cmd.exe
InformationsquelleAutor der Frage Chris | 2010-05-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einige Optionen:
InformationsquelleAutor der Antwort VladV
Debuggen von der Befehlszeile aus, anstatt die VS-GUI-Labyrinth:
Starten Sie die Visual Studio-Eingabeaufforderung
Typ vsjitdebugger/? was gibt dir der Befehl etwa so :
InformationsquelleAutor der Antwort Kwame
Es ist möglich, sicher. Versuchen Sie, eine von diesen beiden:
InformationsquelleAutor der Antwort roufamatic
Wie schon andere gesagt haben, können Sie die stratup Kommandozeile Argumente aus der Projekt-und starten Sie einfach Debuggen in Visual Studio.
Wenn Sie immer noch wollen, zu befestigen, um die laufende Anwendung ist, müssen Sie den debugger an MyApp.exe (was auch immer Ihre Anwendung ist auch als - exe-Datei, die kompiliert wird, zu dem bin\debug-Verzeichnis) und nicht cmd.exe. Befestigung an cmd.exe es anbringen, um den Befehl Prozess, nicht der Prozess Ihrer Anwendung.
InformationsquelleAutor der Antwort adrianbanks
In den Projekten " Einstellungen "Debug" - Abschnitt gibt es ein Textfeld für "Kommandozeilen-Argumente:". Wenn Sie den VS-debugger startet das C# - Programm, das vergeht diese Argumente, um den Prozess so, als würde das Programm gestartet worden war, bilden die Befehlszeile mit diesen Argumenten.
Die alternative ist die Verwendung eines Kommandozeilen-debugger. Es gibt ein paar Optionen hier, aber in aller Ehrlichkeit Sie sind wahrscheinlich nicht, was Sie wollen zu verwenden, anstatt VS, es sei denn, Sie sind in einige wirklich haarige debugging-Szenarien. Wenn Sie interessiert sind bei der Prüfung, gibt es eine gute Zusammenfassung in dieser SO beantworten:
Können Sie auch versuchen, die Technik der Umsetzung ein Aufruf
System.Diagnostics.Debugger.Break()
früh in Ihrem Initialisierung - läuft das Programm unter einem debugger, werde es brechen, es, es läuft nicht unter einem debugger sollten Sie aufgefordert werden, wenn Sie wollen, zu befestigen. Sie können den Aufruf bedingt je nach Konfiguration-Datei oder Umgebungsvariable einstellen, sodass Sie nur die brechen, wenn Sie wirklich interessiert in it (etwas aufdringlich, aber nicht so schlimm).InformationsquelleAutor der Antwort Michael Burr
Fügen Sie einfach einen registry Eintrag für die exe-Datei den Namen in "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution options", indem ein "debugger" - Taste, bewertet mit "vsjitdebugger.exe" darunter können Sie sehen, ein dialog erscheint, der Sie auffordert, wählen Sie ein VS-version zu Debuggen, wenn die exe gestartet wird.
siehe MSDN "Gewusst wie: Starten Sie den Debugger Automatisch" für weitere Informationen.
InformationsquelleAutor der Antwort kaige