Ich erhalte einen Pufferüberlauffehler in einem Projekt, das von VS2005 in VS2008 konvertiert wird. Ich würde gerne wissen, ob es Werkzeuge gibt, die helfen können, wo der Pufferüberlauf aufgetreten ist.Pufferüberlauffehler im Projekt von VS2005 in VS2008 konvertiert
Antwort
Ich nehme an, Sie verwenden C++.
In Microsoft C++ gibt es einen Compiler-Schalter /GS
, um herauszufinden, ob es Pufferüberläufe gibt. Für Details und wie es funktioniert, siehe MSDN Compiler Security Checks In Depth. Zumindest in C# -Entwicklung (aber hoffentlich auch in C++) gibt es eine Debugger-Option "Break wenn eine Exception ist ...", die die Programmausführung stoppt, wenn eine Exception ausgelöst wird (weil die C++ Runtime das erkannt hat) es war überrannt ein Puffer. in VS2010 unter Debug/Ausnahme ist ...
Sie können auch Microsofts PREfast verwenden, die für potentiell unsichere Funktionen ihren Quelltext durchsucht (strcpy)
Wegen der Differenz in behavoiur von sprintf, einem Nicht nullterminierte Zeichenketten wurden über die Array-Grenzen hinaus geschrieben, was wiederum den Stack korrumpierte und zu einem Puffer über den Lauf führte Udio meldet einen Pufferüberlauf und kann somit helfen, den Grund für einen Systemabsturz herauszufinden.
- 1. Konvertieren eines .rptproj von VS2005 nach VS2008
- 2. Behauptung in VS2008, aber nicht in VS2005
- 3. Bulk-Upgrade VS2005 Lösungen VS2008
- 4. VS2008 binär 3x langsamer als VS2005?
- 5. Sharepoint - Wie VSeWSS-Lösung von VS2005 zu VS2008 aktualisiere
- 6. Side-by-Side-Manifest-Problem mit VS2005 & VS2008
- 7. C# - Teilklasse in dem VS2005 Projekt
- 8. Benötigen Merge-Module von VS2005
- 9. kann nicht in VS2008 Datenbank-Projekt laden
- 10. VS2008 stürzt mit XML ab, wenn im Projekt
- 11. Setup-Projekt VS2005 und externes Programm ausführen
- 12. VS2005, 2008 - ASP.NET-Browsereinstellungen
- 13. Konvertierungsproblem von VS2003 zu VS2005?
- 14. VS2005 lädt Projektreferenzen von GAC
- 15. Abhängigkeit von VCOMP90.DLL in VS2008 Pro OpenMP-Projekt
- 16. Mixed-Modus-MFC-Anwendung, die in VS2008 nicht richtig initialisiert
- 17. Wie aus in einem anderen Projekt nennen in VS2005
- 18. Für C++ - Entwickler lohnt es sich, von VS2005 zu VS2008 zu wechseln?
- 19. Problem beim Hinzufügen von GAC-Referenz zu VS2008-Projekt
- 20. Aktualisieren von ReportViewer von v8 auf v9 (VS2005 zu VS2009)
- 21. Was sind die Vorteile von VS2008 gegenüber VS2005 für C++ - Entwicklung?
- 22. Wie konvertiert man ein Winforms-Projekt in WPF-Projekt
- 23. Setup- und Bereitstellungsprojekt - VS2005
- 24. Designs/Skins funktioniert nicht mehr in VS2008
- 25. Verwenden von MSBuild für C++ mit VS2005
- 26. .SVC-Datei in VS2005
- 27. Erstellen von References.cs Problem in VS2008
- 28. Automatische Versionsnummerverwaltung in VS2008
- 29. führen vs2005 C++ Projekt in der späteren Version von Visual Studio
- 30. VS2008-Website in Webanwendung konvertieren
Ja, der Debugger funktioniert gut. –
Meinst du visual Studio Debugger? Beim Aufruf des Call-Stacks könnte ich mich auf ein Modul eingrenzen, in dem der Fehler auftritt. Aber dieses Modul hat immer noch viele Funktionen. Gibt es also eine Möglichkeit, auf eine Funktion hinzuweisen, die den Fehler erzeugt? – Lakshmi