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 keinen Quellcode haben oder die Sie nicht erstellen können? Dann ist der am wenigsten bekannte Typ von Visual Studio-Projekt, 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 gehen Sie zur EXE-Datei . Als wäre es eine SLN- Datei. Visual Studio öffnet diese EXE-Datei als Projekt. Diese Funktion gibt es schon lange. Es funktioniert mit allen derzeit unterstützten Versionen von Visual Studio. Die Dokumentation befindet sich auf der Debugging- Seite der Anwendung, die nicht Teil der Visual Studio-Lösung ist .



Debuggen


Wie in einem regulären Projekt können Sie mit F5 mit dem Debuggen beginnen, wodurch die EXE-Datei gestartet und der Debugger aktiviert wird. Wenn Sie den Start debuggen möchten, können Sie F11 verwenden, wodurch die EXE-Datei gestartet und in der ersten Zeile des Benutzercodes gestoppt wird. Beide Optionen stehen im Kontextmenü für das EXE-Projekt im Projektmappen- Explorer zur Verfügung (siehe unten):



Zum Debuggen benötigen Sie Symbole, PDB-Dateien, für EXE und alle DLLs, die debuggt werden müssen. Visual Studio folgt demselben Vorgang und versucht, Zeichen auf dieselbe Weise wie beim Debuggen eines regulären Projekts abzurufen. Da es unwahrscheinlich ist, dass die PDB-Dateien mit der EXE-Datei verteilt wurden, möchten Sie sie möglicherweise in der Assembly oder, noch besser, auf dem Symbolserver finden. Weitere Informationen und Empfehlungen zur Verwendung von Symbolen finden Sie in diesem Blog .

Für ein effektives Debuggen benötigen Sie auch den Quellcode, der zum Erstellen der EXE-Datei verwendet wurde, oder sogar für mehrere Dateien, die Sie interessieren. Sie müssen diese Dateien suchen und in Visual Studio öffnen. Wenn der Quellcode nicht mit dem kompilierten Quellcode übereinstimmt, werden Sie von Visual Studio EXE gewarnt, wenn Sie versuchen, einen Haltepunkt einzufügen, und der Haltepunkt wird nicht gebunden. Dieses Verhalten kann im Einstellungsfenster "Einstellungen" geändert werden. Klicken Sie in der Parameteransicht auf den Verknüpfungstext Muss mit der Quelle übereinstimmen , und aktivieren Sie das Kontrollkästchen, um die unangemessene Quelle aufzulösen (siehe unten). Bei einer unangemessenen Quelle wissen Sie natürlich nie, was passieren wird. Verwenden Sie diese Quelle daher nur auf eigenes Risiko.



Wenn die EXE- Datei mit SourceLink kompiliert wurde, werden die Quellinformationen in den PDB aufgenommen, und Visual Studio versucht, die Quelle automatisch zu laden. Dies ist ein guter Grund, SourceLink für Ihre Projekte zu verwenden. Selbst wenn Sie einen lokalen Satz haben, verfügen Sie möglicherweise nicht über die Version, die zum Erstellen der Binärdatei verwendet wurde. SourceLink ist Ihr zuverlässiger Weg, um sicherzustellen, dass die richtige Quelle mit der richtigen Binärdatei verknüpft ist.

Wenn Sie den Quellcode nicht erhalten können, haben Sie noch mehrere Optionen:

  1. Verwenden Sie das Tool, um Assemblys wieder in C # zu dekompilieren. Sie können sie dann in eine neue Assembly kompilieren, um die alte zu reparieren.
    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 . Beachten Sie, dass die Demontage von Ansichten das letzte Mittel ist, wenn Sie an das Debuggen von C # -Code gewöhnt sind.


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



Profilerstellung


Sie können Profiling-Tools auch mit einer EXE-Datei verwenden, indem Sie sie unter Debugging -> Performance Profiling ausführen . Auf der Startseite der Profiling-Tools können Sie auswählen, welche Tools für die EXE-Datei 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 ist alles. Eine kurze Übersicht darüber, wie Sie mit Visual Studio Anwendungen debuggen und profilieren können, die Sie nicht erstellt haben und die möglicherweise nicht einmal Quellcode enthalten. Wenn Sie das nächste Mal eine EXE-Datei debuggen oder profilieren müssen, öffnen Sie sie unbedingt als Lösung in Visual Studio!

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


All Articles