Interne Fehler beheben (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu So verwenden Sie den Debugger


Interne Compiler-Fehler

Es gibt drei Arten von Fehlern, die der C++-Compiler erzeugt und die als interne Compiler-Fehler eingestuft werden:

Alle drei Fehlerarten resultieren aus Fehlern im Compiler. <Dateiname> und <Zeile> geben die Stelle im Quelltext an, die der Compiler vor dem Fehler analysiert hat. Anhand dieser Informationen können Sie möglicherweise die Ursache des Problems ermitteln. <Fehlercode> ist eine spezifische Information, die Compiler-Entwicklern mitteilt, was der Compiler auszuführen versuchte, als der Fehler auftrat.

Vorgehen bei internen Compiler-Fehlern

  1. Ihr Quelltext muss nicht wirklich fehlerhaft sein.
  2. Versuchen Sie, ein neues, bereinigtes Build auszuführen.
  3. Versuchen Sie, ein Befehlszeilen-Build auszuführen.
  4. Analysieren Sie den Quelltext, um das Problem einzugrenzen.
  5. Senden Sie einen Fehlerbericht.

So führen Sie ein neues, bereinigtes Build aus:

  1. Klicken Sie in der Projektverwaltung mit der rechten Maustaste auf das Projekt, und wählen Sie Bereinigen.
  2. Überprüfen Sie die Verzeichnisstruktur, um sicherzustellen, dass dem Projekt keine .obj-, .tds-, .dcu-, .#*-, oder .pch-Dateien zugeordnet sind.
  3. Wählen Sie im Menü "Projekt" den Befehl Erzeugen aus.

So führen Sie ein Befehlszeilen-Build aus:

  1. Sie können die Befehlszeile des Compilers aus der Registerkarte "Ausgabe" des Fensters "Meldungen" kopieren und diesen Befehl an der Eingabeaufforderung verwenden oder ...
  2. Wählen Sie im Startmenü "Rad Studio-Befehlszeile", und geben Sie dann "msbuild IhrProjekt.cbproj" ein.

So analysieren Sie den Quelltext:

Wenn das Problem weder durch ein bereinigtes Build noch durch ein Befehlszeilen-Build behoben wurde, sollten Sie den Quelltext analysieren, um das Problem einzugrenzen.


  1. Verarbeiten Sie die in der Fehlermeldung angegebene Datei vor. Klicken Sie dazu in der Projektverwaltung mit der rechten Maustaste auf die Datei, und wählen Sie "Vorverarbeiten", oder ersetzen Sie in die Befehlszeile im Befehl zum Compilieren der Datei den Compiler (bcc32.exe) durch den Präprozessor (cpp32.exe). Dadurch wird eine Datei ohne externe Abhängigkeiten für die Compilierung erzeugt, die möglicherweise sehr groß ist.
  2. Compilieren Sie die vorverarbeitete Datei mit der Option -P. Wenn das ausreicht, um das Problem zu reproduzieren, können Sie direkt mit Schritt 4 fortfahren.
  3. Wenn die .i-Datei korrekt compiliert wird, sind wahrscheinlich weitere Optionen erforderlich, um das Problem zu reproduzieren. Compilieren Sie die .i-Datei erneut, und fügen Sie nacheinander alle Optionen hinzu, die Sie für das ursprüngliche Befehlszeilen-Build verwendet haben, bis Sie feststellen können, welche Optionen zum Reproduzieren des Problems erforderlich sind.
  4. Diese Informationen sind ausreichend, um einen Fehlerbericht zu senden. Wenn Sie das Problem nicht weiter eingrenzen möchten, fahren Sie bitte mit der Anleitung zum Senden eines Fehlerberichts fort.
  5. Sie können alles nach der Zeile, in der der Fehler auftritt, und alle Kommentare löschen.
  6. Beginnen Sie damit, Funktionsrümpfe und andere Codebereiche auszukommentieren, die höchstwahrscheinlich nichts mit dem Problem zu tun haben.
  7. Wenn Sie Bereiche identifizieren, die zum Reproduzieren des Problems nicht erforderlich sind, können Sie diese Abschnitte aus der .i-Datei löschen.
  8. Wenn Sie die für das Problem nötigen Elemente eingegrenzt haben, können Sie einen Fehlerbericht senden und den verwendeten Konstrukttyp analysieren, mit dem eine Lösung gefunden werden sollte.

So senden Sie einen Fehlerbericht:

  1. Melden eines neuen Fehlers über das Quality Portal unter quality.embarcadero.com.
  2. Wählen Sie C++Builder als Projekt.
  3. Wählen Sie Compiler/C++ als Bereich.
  4. Geben Sie die zum Reproduzieren des Fehlers erforderliche Befehlszeile in die Fehlerschritte ein.
  5. Hängen Sie die .i-Datei an.
  6. Klicken Sie auf das Häkchen, um den Bericht zu speichern.

Siehe auch