Speicher Korruption in der Software kann sehr frustrierend sein, zu debuggen. Es hilft aber, zu verstehen, welche Ursachen Speicher Korruption und wie man über die Festsetzung zu haben. Der Speicher kann durch einen Pufferüberlauf beschädigt werden , mit nicht initialisierten Speicher , oder versuchen zu lesen oder zu schreiben ungültigen Speicher . Der Programmierer muss die Quelle des Problems und zu beheben. Things You
Quellcode der programm herunterladen Compiler für Quellcode
brauchen anzeigen Weitere Anweisungen
1
Reduzieren Sie Ihre Suche . Es ist ein Hinweis, dass Sie in die richtige Richtung , wenn Sie den Fehler, wenn ein Teil der Code ausgeführt wird verhindert reproduzieren scheitern. Wenn Sie mit Visual C + +, der Debugger kann Ihnen helfen, den Code zu finden, wo die Korruption geschieht Schritt .
2
Comb durch den Quellcode . Sobald Sie haben sich das Problem auf einen kleineren Abschnitt des Codes verringert, müssen Sie durch sie gehen und sicherstellen, dass der gesamte Speicher liest und schreibt die Verwendung gültiger Speicher . Output -Debugging -Anweisungen mit Funktionen wie OutputDebugString um sicherzustellen , dass der Speicher Werte gültig sind . Vergewissern Sie sich , dass Arraygrenzen befolgt werden und dass der Speicher wird initialisiert und nicht auf null gesetzt oder gelöscht , bevor seine Verwendung.
3
das Problem beheben. Sobald Sie das Problem gefunden haben, zu beseitigen. Wenn es eine fremde Freigabe von Speicher ist , entfernen Sie einfach diese Codezeile . Stellen Sie sicher, dass alle Arrays sind nur innerhalb ihrer Grenzen und dass alle direkt zugegriffen Speicher wird vor seiner Verwendung initialisiert werden.
4
Verhindern Sie das Problem erneut auftritt . Manchmal einen Speicher Manager verwenden , so dass alle Speicherzuweisungen und Zuordnungsaufhebungen eine gemeinsame Schnittstelle haben können Ihnen helfen, zu beseitigen Speicher Korruption Fehler . Vielleicht möchten Sie prüfen jedes Array lesen oder zu schreiben , so dass Sie garantieren können, dass es innerhalb der Grenzen ist .