Freigeben über


Anleitung: Fehlersuche in einem Release-Build

In diesem Artikel wird erläutert, welche Compiler- und Linker-Optionen festgelegt werden, damit Sie einen Releasebuild einer Anwendung debuggen können.

Eine bessere Benutzererfahrung ist ab Visual Studio 2022, Version 17.14, verfügbar, mit der Sie optimierten Code debuggen können, als ob er nicht optimiert kompiliert wurde und gleichzeitig die Geschwindigkeit des optimierten Codes beibehalten. Weitere Informationen finden Sie unter dynamisches Debuggen (Vorschau)von C++.

Debuggen eines Releasebuilds

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten für das Projekt. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf den Knoten C/C++. Legen Sie Debuginformationsformat auf C7-Kompatibel (/Z7) oder Programmdatenbank (/Zi) fest.

  3. Erweitern Sie Linker, und klicken Sie auf den Knoten Allgemein. Legen Sie Inkrementelles Verknüpfen aktivieren auf Nein (/INCREMENTAL:NO) fest.

  4. Wählen Sie unter "Linker" den Knoten "Debuggen " aus. Legen Sie Debuginformationen generieren auf Ja (/DEBUG) fest.

  5. Wählen Sie unter "Linker" den Knoten "Optimierung" aus . Legen Sie Verweise auf Nein (/OPT:NOREF) und COMDAT-Faltung aktivieren auf Nein (/OPT:NOICF) fest.

  6. Sie können nun Ihre Releasebuildanwendung debuggen. Gehen Sie den Code bei der Suche nach einem Problem durch (oder verwenden Sie das Just-In-Time-Debuggen), bis Sie herausgefunden haben, wo der Fehler auftritt, und ermitteln Sie dann die falschen Parameter bzw. den fehlerhaften Code.

    Wenn eine Anwendung in einem Debugbuild funktioniert, in einem Releasebuild aber fehlschlägt, kann eine der Compileroptimierungen einen Fehler im Quellcode anzeigen. Deaktivieren Sie zum Isolieren des Problems ausgewählte Optimierungen für jede Quellcodedatei, bis Sie die Datei und die Optimierung finden, die das Problem verursachen. (Sie können die Dateien zur Beschleunigung des Prozesses in zwei Gruppen unterteilen und die Optimierung für eine Gruppe deaktivieren. Wenn Sie ein Problem in einer Gruppe feststellen, teilen Sie diese weiter auf, bis Sie die Problemdatei isoliert haben.)

    Verwenden Sie /RTC, um zu versuchen, solche Fehler in Ihren Debug-Builds aufzudecken.

    Weitere Informationen finden Sie unter Codeoptimierung.

Siehe auch

Beheben von Problemen mit dem Releasebuild