Typowe problemy podczas tworzenia kompilacji wydania

Podczas rozwoju będą zazwyczaj tworzenie i testowanie z kompilacja do debugowania projektu.Jeśli następnie zbudować aplikację w wydanej kompilacji, może pojawić się błąd naruszenia zasad dostępu.

Na poniższej liście przedstawiono podstawowe różnice między debugowania i kompilacji wydania (nondebug).Istnieją inne różnice, ale są następujące podstawowe różnice, które mogłyby spowodować awarię aplikacji w wydanej kompilacji, kiedy działa w kompilacja do debugowania.

  • Układ sterty

  • Kompilacja

  • Wskaźnik wsparcia

  • Optymalizacje

Zobacz /GZ (złapać błędy wydanej kompilacji w Debug budować) opcję kompilatora, aby uzyskać informacje dotyczące połowu wydania zbudować błędów w buduje debugowania.

Układ sterty

Układ sterty będzie przyczyną około dziewięćdziesiąt procent widocznych problemów, gdy aplikacja pracuje w debugowania, ale nie wersji.

Podczas tworzenia projektu do debugowania, używasz programu debug przydzielania pamięci.Oznacza to, że wszystkie przydziały pamięci mieć bajtów guard umieszczona wokół nich.Tych bajtów guard wykryć zastępowania pamięci.Ponieważ układ sterty różnią się pomiędzy wydania, jak i debugowe wersje, Zastąp pamięci może nie tworzyć żadnych problemów w kompilacja do debugowania, ale mogą mieć katastrofalny wpływ w wydanej kompilacji.

Aby uzyskać więcej informacji, zobacz Wyszukaj z nadpisywaniem pamięci i wykorzystania Debug budować Aby sprawdzić nadpisywaniem pamięci.

Kompilacja

Wiele makr MFC i wiele zmian implementacji MFC podczas konstruowania dla wydania.W szczególności makro ASSERT daje w wyniku nic w wydanej kompilacji, więc żaden kod znalezione w potwierdzenia zostanie wykonana.Aby uzyskać więcej informacji, zobacz Bada sprawozdania DOCHODZIĆ.

Niektóre funkcje są inlined na zwiększenie szybkości w wydanej kompilacji.Optymalizacje ogólnie są włączone w wydanej kompilacji.Jest też używana przydzielania pamięci innym.

Wskaźnik wsparcia

Brak informacji o debugowaniu usuwa Dopełnienie z aplikacji.W wydanej kompilacji Zbłąkane wskaźniki mają większe szanse wskazujący na niezainicjowanej pamięci zamiast wskazujące na informacje debugowania.

Optymalizacje

W zależności od charakteru niektórych segmentach kod optymalizujący kompilator może wygenerować kod nieoczekiwanego.Jest to najmniej prawdopodobną przyczyną problemów kompilacji wydania, ale od czasu do czasu powstać.Do rozwiązania, zobacz Optymalizacji kodu.

Zobacz też

Informacje

Kompilacje wydania

Naprawianie problemów kompilacji wydania