Pamięć uszkodzona

0

Witajcie znowu!

Nagle w programie zaczęły pojawiać się tego typu błędy przy próbie zakończenia aplikacji:
http://screenshooter.net/100279527/ohkffia

Zauważyłem, że czasami przy próbie uruchomienia jej, wyskakuje najzwyklejszy problem z alokacją pamięci (np. przeskakuje do catch bad::alloc). Zupełnie nie wiem co na to poradzić, czym spowodowane są tego typu błędy. Aplikacja jest już dość duża, zawiera dobre 6 tysięcy linijek kodu i kilkadziesiąt plików. Staram się nie nadużywać alokowania.

Macie jakiś pomysł, który mógłby pomóc w rozwiązaniu problemu / znalezieniu przyczyny?

Pozdrawiam

0

a może podasz coś więcej niż problem? np kod? bo magiczna kula jest w naprawie i nie znajdę twojego błędu w kodzie bez kodu :) jak ktoś ma ci pomóc z np alokowaniem pamięci bez zobaczenia jak to robisz?

0
  1. sprawdź ostatnie zmiany - czy nie mają podejrzanych alokacji
  2. skompiluj i uruchom pod Visual Studio w trybie debug - czasami wykrywa dziwne zachowania pamięciowe
  3. wyczyść warningi z kompilacji
  4. wyczyść warningi z analizy statycznej: CppCheck
  5. nadal nic? poczytaj o zapewnieniu jakości tutaj: http://www.foundbit.com/pl/zasoby/jezyki/cpp/articles/cpp-kroki.html
  6. nadal nic? użyj "C++ Memory Validator" - bardzo ładnie potrafi znaleźć coś co nie jest wyciekiem, np. lawinową alokację, która na końcu programu się zwija
0

A nie używasz np map czy vector albo innych rzeczy które same potrafią alokować pamięć? Takie map to może być zabójca jak zrobisz błąd w kodzie bo każde odwołanie do nieistniejącego klucza tworzy go...

Odpal to pod valgrindem i zobacz co powie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1