Sdílet prostřednictvím


Běžné problémy při vytváření sestavení pro vydání

Během vývoje obvykle sestavíte a otestujete ladicí sestavení projektu. Pokud pak sestavíte aplikaci pro sestavení vydané verze, může dojít k narušení přístupu.

Následující seznam ukazuje hlavní rozdíly mezi sestavením ladění a vydáním (nedebug). Existují další rozdíly, ale následují hlavní rozdíly, které by způsobily selhání aplikace v sestavení vydané verze, když funguje v sestavení ladění.

Informace o zachycení chyb sestavení vydané verze v buildech ladění najdete v možnosti kompilátoru /GZ (Catch Release-Build Errors in Debug Build).

Rozložení haldy

Rozložení haldy bude příčinou přibližně devadesát procent zjevných problémů, když aplikace pracuje v ladění, ale ne uvolnění.

Při sestavování projektu pro ladění používáte alokátor paměti ladění. To znamená, že všechny přidělení paměti mají hlídané bajty umístěné kolem nich. Tyto bajty ochrany detekují přepsání paměti. Vzhledem k tomu, že rozložení haldy se liší od verzí a verzí ladění, nemusí přepsání paměti vytvářet žádné problémy v sestavení ladění, ale může mít katastrofické účinky na sestavení vydané verze.

Další informace naleznete v tématu Kontrola přepsání paměti a použití ladění sestavení ke kontrole přepsání paměti.

Kompilace

Mnoho maker MFC a velké části implementace MFC se při sestavování pro vydání změní. Konkrétně se makro ASSERT vyhodnotí jako nic v sestavení vydané verze, takže se nespustí žádný kód nalezený v ASSERTs. Další informace naleznete v tématu Kontrola příkazů ASSERT.

Některé funkce jsou vloženy pro vyšší rychlost sestavení vydané verze. Optimalizace jsou obecně zapnuté v buildu vydané verze. Používá se také jiný alokátor paměti.

Podpora ukazatele

Nedostatek informací o ladění odebere odsazení z vaší aplikace. V sestavení vydané verze mají stray ukazatele větší šanci odkazovat na neinicializovanou paměť místo odkazování na informace o ladění.

Optimalizace

V závislosti na povaze určitých segmentů kódu může optimalizace kompilátoru generovat neočekávaný kód. Toto je nejméně pravděpodobná příčina problémů s sestavením vydané verze, ale dochází k ní při příležitosti. Řešení najdete v tématu Optimalizace kódu.

Viz také

Sestavení pro vydání
Oprava problémů se sestavením pro vydání