Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Tijdens de ontwikkeling bouwt en test u meestal met een foutopsporingsbuild van uw project. Als u vervolgens uw toepassing bouwt voor een release-build, krijgt u mogelijk een schending van de toegang.
In de onderstaande lijst ziet u de belangrijkste verschillen tussen een debug en een release-build (niet-debug). Er zijn andere verschillen, maar hieronder volgen de belangrijkste verschillen die ertoe leiden dat een toepassing in een release-build mislukt wanneer deze werkt in een foutopsporingsbuild.
Zie de compileroptie /GZ (Catch Release-Build Errors in Debug Build) voor informatie over het opsporen van release-buildfouten in builds voor foutopsporing.
Heap-indeling
Heap-geheugenindeling is de oorzaak van ongeveer negentig procent van de opvallende problemen wanneer een toepassing in de debugmodus werkt, maar niet in de releaseversie.
Wanneer u uw project bouwt in de debug-modus, gebruikt u de geheugenallocator voor foutopsporing. Dit betekent dat alle geheugentoewijzingen beveiligde bytes hebben die er omheen zijn geplaatst. Deze bewakingsbytes detecteren een overschrijven van geheugen. Omdat de heap-indeling verschilt tussen release- en foutopsporingsversies, kan een overschrijven van geheugen geen problemen veroorzaken in een foutopsporingsbuild, maar mogelijk catastrofale effecten hebben in een release-build.
Zie Controleren op overschrijven van geheugen en de build voor foutopsporing gebruiken om te controleren op overschrijven van geheugen voor meer informatie.
Compilatie
Veel van de MFC-macro's en een groot deel van de MFC-implementatie verandert wanneer u een release buildt. De macro ASSERT evalueert met name op niets in een release-build, dus geen van de code die in ASSERTs wordt gevonden, wordt uitgevoerd. Voor meer informatie, zie ASSERT-instructies onderzoeken.
Sommige functies zijn geïnlineerd voor een hogere snelheid in de releasebuild. Optimalisaties worden over het algemeen ingeschakeld in een release-build. Er wordt ook een andere geheugentoewijzing gebruikt.
Ondersteuning voor aanwijzer
Het ontbreken van foutopsporingsgegevens verwijdert de opvulling van uw applicatie. In een release build hebben verdwaalde aanwijzers een grotere kans om naar niet-geïnitialiseerd geheugen te wijzen in plaats van naar foutopsporingsinformatie.
Optimalisaties
Afhankelijk van de aard van bepaalde codesegmenten kan de optimalisatie-compiler onverwachte code genereren. Dit is de minst waarschijnlijke oorzaak van problemen met de release-build, maar dit doet zich soms voor. Zie Uw code optimaliseren voor een oplossing.