Debuggen mit Befehlszeilenparametern in Visual Studio

513

Ich entwickle eine C ++ - Befehlszeilenanwendung in Visual Studio und muss sie mit Befehlszeilenargumenten debuggen. Im Moment führe ich nur die generierte EXE-Datei mit den Argumenten aus, die ich brauche (so program.exe -file.txt), aber auf diese Weise kann ich nicht debuggen. Kann ich irgendwo die Argumente für das Debuggen angeben?

Maciej Gryka
quelle

Antworten:

754

Ja, es befindet sich im Abschnitt Debugging auf der Eigenschaftenseite des Projekts.

In Visual Studio seit 2008: Klicken Sie mit der rechten Maustaste auf das Projekt , wählen Sie Eigenschaften , gehen Sie zum Abschnitt Debuggen - dort befindet sich ein Feld für "Befehlsargumente". (Tipp: keine Lösung, sondern Projekt).

Lou Franco
quelle
296
Stackoverflow ist die einzige verwendbare MS-Dokumentation!
Martin Beckett
12
Sei vorsichtig damit. Dadurch wird nicht die eigentliche Projektdatei geändert, sondern die Datei vcxproj.user.
TheTrowser
Hinweis: Wenn Sie mehrere Projekte in einer Lösung haben, denken Sie daran, mit der rechten Maustaste auf das Projekt zu klicken, das Sie ausführen möchten, und auf "Als Startprojekt festlegen".
Lion Lai
1
Genau richtig. Aber anscheinend heißt es in VS2017 nicht "Debugging", sondern "Debug". Wir werden vielleicht nie wissen warum.
OmarL
3
Stellen Sie sicher, dass Sie die richtige Konfiguration in der Dropdown-Liste oben auf den Eigenschaftenseiten ausgewählt haben, dh dieselbe Konfiguration wie die, die Sie ausführen möchten.
Steve Smith
55

Die häufig gestellten Fragen zu Mozilla.org zum Debuggen von Mozilla unter Windows sind hier von Interesse.

Kurz gesagt, der Visual Studio-Debugger kann in einem Programm über die Befehlszeile aufgerufen werden, sodass die Befehlszeilenargumente beim Aufrufen eines Befehlszeilenprogramms direkt in der Befehlszeile angegeben werden können.

Dies sieht für Visual Studio 8 oder 9 wie folgt aus (Visual Studio 2005 bzw. Visual Studio 2008).

  devenv / debugexe 'Programmname' 'Programmargumente'

Es ist auch möglich, eine Explorer-Aktion auszuführen , um ein Programm im Visual Studio-Debugger zu starten.

grrussel
quelle
17

Selbst wenn Sie die ausführbare Datei außerhalb von Visual Studio starten, können Sie den Befehl "Anhängen" verwenden, um Visual Studio mit Ihrer bereits ausgeführten ausführbaren Datei zu verbinden. Dies kann beispielsweise nützlich sein, wenn Ihre Anwendung als Plug-In in einer anderen Anwendung ausgeführt wird.

MSalters
quelle
Ja, anhängen mit Ctrl+Alt+P(oder klicken Sie auf "Debuggen"> "An Prozess anhängen ..."). Aber das beantwortet die OP-Frage nicht wirklich;)
T_D
7

Microsoft Visual Studio Ultima 2013.

Sie können einfach zum Menü DEBUG → HaupteigenschaftenKonfigurationseigenschaftenDebugging gehen und sehen dann das Feld für die Befehlszeilenargumente.

Tatsächlich können Sie dieselben Eingabeargumente für alle verschiedenen Konfigurationen festlegen und nicht nur für das Debuggen.

Wählen Sie im Pulldown-Menü der Konfiguration Folgendes aus: Alle Konfigurationen und fügen Sie die Eingabeargumente ein (jedes Argument durch Leerzeichen getrennt).

Jetzt können Sie Ihr Programm in verschiedenen Modi ausführen, ohne die Eingabeargumente jedes Mal ändern zu müssen.

Jorge
quelle
So funktioniert das auch in MS VS 2015. Bevor ich zu "Debug-> {Projektname} Eigenschaften" ging, musste ich den "Configuration Manager" öffnen, auf den über die Dropdown-Liste zugegriffen werden kann, die standardmäßig "Debug" und "Release" enthält. Es öffnete sich ein Fenster, in dem ich neue "Konfigurations" -Elemente hinzufügen konnte. Diese Elemente sind unter "Debug -> {Projektname} Eigenschaften" verfügbar.
AMartinNo1
2

Dies kann einigen Menschen helfen, die immer noch Probleme haben. Ich verwende Visual Studio 2015 und konnte die Argumente nur übergeben, wenn ich die Definition von geändert habeargv .

Anstatt

int main(int argc, char **argv){
}

Ich musste benutzen

int main(int argc, char *argv[]){
}

Ich weiß nicht, warum es notwendig war, aber es funktioniert.

Blubsiwubsi
quelle
Was ist das? C ++ nativ? C ++ verwaltet (.NET)?
Peter Mortensen
Hatte das gleiche Problem, aber beide oben genannten Erklärungen funktionierten nicht. Die Lösung bestand darin, die Plattform von x86 auf x64 zu ändern, da ich an einem 64-Bit-Computer arbeite.
hfrmobile
2

In Visual Studio 2017 mit einem .NET Core Konsolenanwendung wie folgt vor:

Klicken Sie im Lösungsfenster mit der rechten Maustaste auf das Projekt , wählen Sie "Eigenschaften", Debuggen (auf der linken Seite) und geben Sie die Argumente in das Feld "Anwendungsargumente" ein .

Beachten Sie, dass sie durch Leerzeichen getrennt sein sollten.

Yahya Hussein
quelle
1

Klicken Sie in Visual Studio 2010 mit der rechten Maustaste auf das Projekt, wählen Sie Eigenschaften , klicken Sie im linken Bereich auf den Abschnitt Eigenschaften konfigurieren und dann auf Debuggen dann auf . Im rechten Bereich befindet sich ein Feld für Befehlsargumente.

Geben Sie darin die Befehlszeilenargumente ein. Du bist startklar. Jetzt debuggen und das Ergebnis sehen. Wenn Sie es leid sind, die Eigenschaften zu ändern, geben Sie die Eingabe vorübergehend direkt im Programm ein.

Sam
quelle
1

Klicken Sie mit der rechten Maustaste auf das Projekt im Lösungsfenster von Visual Studio, wählen Sie "Debugging" (auf der linken Seite) und geben Sie die Argumente in das Feld "Befehlsargumente" ein :

Geben Sie hier die Bildbeschreibung ein

Andrushenko Alexander
quelle
1

Verwenden Sie ab VS 2015 die Erweiterung Smart Command Line Arguments . Dieses Plug-In fügt ein Fenster hinzu, in dem Sie Argumente ein- und ausschalten können:

Smart Command Line Arguments-Schnittstelle

Die Erweiterung speichert die Argumente zusätzlich in einer JSON-Datei, sodass Sie sie der Quellcodeverwaltung übergeben können. Dies stellt nicht nur sicher, dass Sie nicht jedes Mal alle Argumente eingeben müssen, sondern ist auch eine nützliche Ergänzung zu Ihrer Dokumentation, damit andere Entwickler die verfügbaren Optionen ermitteln können.

jpmc26
quelle