So debuggen und profilieren Sie EXE-Dateien mit Visual Studio

Mussten Sie jemals eine ausführbare Datei (EXE-Datei) debuggen oder profilieren, für die Sie keine Quelle haben oder die Sie nicht erstellen können? Dann ist der am wenigsten bekannte Visual Studio-Projekttyp, das EXE-Projekt, genau das Richtige für Sie!

In Visual Studio können Sie jede EXE-Datei als 'Projekt' öffnen. Gehen Sie einfach zu Datei-> Öffnen-> Projekt / Lösung und navigieren Sie zur EXE- Datei. Wie Sie es tun würden, wenn es eine .sln- Datei wäre. Visual Studio öffnet diese EXE-Datei dann als Projekt. Diese Funktion gibt es schon lange. Es funktioniert mit allen derzeit unterstützten Visual Studio-Versionen. Die entsprechenden Dokumente finden Sie unter " Debuggen einer App, die nicht Teil einer Visual Studio-Lösung ist ".



Dieser Artikel in unserem Blog .

Debuggen


Wie bei einem normalen Projekt können Sie mit F5 mit dem Debuggen beginnen, wodurch die EXE-Datei gestartet und der Debugger angehängt wird. Wenn Sie den Start debuggen möchten, können Sie mit F11 starten, wodurch die EXE-Datei gestartet und in der ersten Zeile des Benutzercodes gestoppt wird. Beide Optionen sind im Kontextmenü für das EXE-Projekt im Projektmappen- Explorer verfügbar (siehe Abbildung unten):



Zum Debuggen benötigen Sie Symbole, PDB-Dateien, die EXE-Datei und alle DLLs, die Sie debuggen müssen. Visual Studio versucht auf dieselbe Weise, Symbole abzurufen, wie beim Debuggen eines normalen Projekts. Da es unwahrscheinlich ist, dass die PDB-Dateien neben der EXE-Datei verteilt wurden, möchten Sie sie möglicherweise von einem Build-Drop oder, noch besser, von einem Symbolserver aus suchen. Weitere Informationen und Best Practices für Symbole finden Sie in diesem Blog .

Zum effektiven Debuggen benötigen Sie auch den Quellcode, der zum Erstellen der EXE-Datei verwendet wurde, selbst für einige wenige Dateien, die Sie interessieren. Sie müssen diese Dateien suchen und in Visual Studio öffnen. Wenn der Quellcode nicht genau mit dem erstellten Quellcode übereinstimmt, werden Sie von EXE Visual Studio gewarnt, wenn Sie versuchen, einen Haltepunkt einzufügen, und der Haltepunkt wird nicht gebunden. Dieses Verhalten kann im Peek-Fenster " Haltepunkteinstellungen" überschrieben werden. Klicken Sie im Einstellungsfenster auf den Linktext " Muss mit Quellcode übereinstimmen" und aktivieren Sie das Kontrollkästchen, um eine nicht übereinstimmende Quelle zuzulassen, wie unten dargestellt. Natürlich wissen Sie bei nicht übereinstimmenden Quellen nie wirklich, was passieren wird. Verwenden Sie diese also auf eigene Gefahr.



Wenn die EXE- Datei mit aktiviertem SourceLink erstellt wurde, werden Informationen zur Quelle in die PDBs aufgenommen, und Visual Studio versucht, die Quelle automatisch herunterzuladen. Dies ist ein guter Grund, SourceLink für Ihre Projekte zu verwenden. Selbst wenn Sie eine lokale Registrierung haben, haben Sie möglicherweise nicht dieselbe Version, die zum Erstellen der Binärdatei verwendet wurde. SourceLink ist Ihr sicherer Weg, um sicherzustellen, dass die richtige Quelle mit der richtigen Binärdatei verknüpft ist.

Wenn Sie keinen Quellcode erhalten können, haben Sie noch einige Optionen:

  1. Verwenden Sie ein Tool, um die Assemblys wieder in C # zu dekompilieren. Sie können sie dann in neue Assembles kompilieren, um die alte zu patchen.
    1. ILSpy ist eine gute Wahl dafür, aber es gibt viele andere gut bezahlte und kostenlose Tools.

  2. Verwenden Sie das Disassembly-Tool-Fenster in Visual Studio.
    1. Das Dokument " Quelle nicht gefunden" enthält einen Link zum Anzeigen der Demontage . Seien Sie gewarnt, wenn Sie mit dem Debuggen von C # -Code vertraut sind, ist die Demontageansicht ein Werkzeug der letzten Instanz.


Wenn Sie Argumente an die zu debuggende EXE-Datei übergeben müssen, können Sie diese zusammen mit anderen Optionen auf der Seite Projekteigenschaften konfigurieren ( Rechtsklick-> Eigenschaften auf dem Projektknoten im Projektmappen-Explorer).



Profilerstellung


Sie können die Profiling-Tools auch mit der EXE-Datei verwenden, indem Sie sie über Debug -> Performance Profiling starten. Auf der Startseite der Profiling-Tools können Sie auswählen, welche Tools für die EXE verwendet werden sollen. Weitere Informationen zur Profilerstellung finden Sie in diesen Dokumenten ( https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019 ).



Fazit


Das war's. Eine kurze Übersicht darüber, wie Sie mit Visual Studio Anwendungen debuggen und profilieren können, die Sie nicht erstellen und für die Sie möglicherweise nicht einmal eine Quelle haben. Wenn Sie also das nächste Mal eine EXE-Datei debuggen oder profilieren müssen, vergessen Sie nicht, dass Sie sie als Lösung in Visual Studio öffnen können!

Source: https://habr.com/ru/post/de468317/


All Articles