Debug vs. Release in Delphi Build-configuraties 1/3

click fraud protection

01

van 03

Configuraties bouwen - Basis: debuggen, vrijgeven

Delphi Projectmanager
Delphi Projectmanager.Zarko Gajic

Het Project Manager-venster in uw Delphi (RAD Studio) IDE toont en organiseert de inhoud van uw huidige projectgroep en alle projecten die het bevat. Het geeft een overzicht van alle eenheden die deel uitmaken van uw project, evenals alle opgenomen formulieren en bronbestanden.

In het gedeelte Build-configuraties worden verschillende build-configuraties weergegeven die u voor uw project hebt.

Wat recenter (om correct te zijn: vanaf Delphi 2007) Delphi-versies hebben twee (drie) standaardconfiguraties: DEBUG en RELEASE.

Het Conditional Compilation 101-artikel vermeldt buildconfiguraties, maar legt het verschil in details niet uit.

Debug vs. Vrijlating

Aangezien u elk van de buildconfiguraties die u in de Project Manager ziet kunt activeren en uw project kunt bouwen met een ander uitvoerbaar bestand, is de vraag wat is het verschil tussen Debug en Release?

De naamgeving zelf: "debug" en "release" zouden je in de goede richting moeten wijzen.

instagram viewer
  • De configuratie voor foutopsporing moet actief en gebruikt zijn terwijl we uw toepassing ontwikkelen, debuggen en wijzigen.
  • De releaseconfiguratie moet worden geactiveerd wanneer we uw applicatie bouwen, zodat het geproduceerde uitvoerbare bestand naar de gebruikers wordt gestuurd.

Toch blijft de vraag: wat is het verschil? Wat kunt u doen terwijl "debug" actief is en wat is opgenomen in het uiteindelijke uitvoerbare bestand vs. hoe ziet het uitvoerbare bestand eruit als "release" wordt toegepast?

Bouw configuraties

Standaard zijn er drie (hoewel je in de Project Manager maar twee ziet) buildconfiguraties gemaakt door Delphi wanneer je een nieuw project start. Dat zijn Base, Debug en Release.

De Basisconfiguratie fungeert als een basisset van optie waarden die wordt gebruikt in alle configuraties die u vervolgens maakt.

De genoemde optiewaarden zijn de compileren en koppelen en nog een set opties die u voor uw project kunt wijzigen met behulp van het dialoogvenster Projectopties (hoofdmenu: Project - Opties).

De Configuratie voor foutopsporing breidt Base uit door optimalisatie uit te schakelen en foutopsporing in te schakelen, en door specifieke syntaxisopties in te stellen.

De Configuratie vrijgeven breidt Base uit om geen symbolische foutopsporingsinformatie te produceren, de code wordt niet gegenereerd voor TRACE- en ASSERT-aanroepen, wat betekent dat de omvang van uw uitvoerbare bestand wordt verkleind.

U kunt uw eigen buildconfiguraties toevoegen en u kunt zowel de standaardconfiguraties voor foutopsporing als release verwijderen, maar u kunt de basisconfiguratie niet verwijderen.

Buildconfiguraties worden opgeslagen in het projectbestand (.dproj). De DPROJ is een XML-bestand, hier is hoe de sectie met buildconfiguraties:

00400000.. \ $ (Config) \ $ (Platform) WinTypes = Windows; WinProcs = Windows; DbiTypes = BDE; DbiProcs = BDE; $ (DCC_UnitAlias). \ $ (Config) \ $ (Platform) DEBUG; $ (DCC_Define) false. waar. false. VRIJGEVEN; $ (DCC_Define) 0. false.

U zult het DPROJ-bestand natuurlijk niet handmatig wijzigen, het wordt onderhouden door Delphi.

U kunt * buildconfiguraties hernoemen, u * kunt * de instellingen voor elke buildconfiguratie wijzigen, u * kunt * ervoor zorgen dat "release" voor foutopsporing is en "debug" is geoptimaliseerd voor uw klanten. Daarom hoeft u niet te weten wat u doet :)

Compileren, bouwen, uitvoeren

Terwijl u aan uw applicatie werkt en deze ontwikkelt, kunt u de applicatie rechtstreeks vanuit de IDE compileren, bouwen en uitvoeren. Compileren, bouwen en uitvoeren levert het uitvoerbare bestand op.

Bij het compileren wordt de syntaxis van uw code gecontroleerd en wordt de toepassing gecompileerd, waarbij alleen rekening wordt gehouden met de bestanden die sinds de laatste build zijn gewijzigd. Compileren levert DCU-bestanden op.

Bouwen is een uitbreiding op compileren waar alle eenheden (zelfs die niet gewijzigd) zijn gecompileerd. Wanneer u projectopties wijzigt, moet u bouwen!

Running compileert de code en voert de applicatie uit. U kunt uitvoeren met foutopsporing (F9) of zonder foutopsporing (Ctrl + Shift + F9). Als het wordt uitgevoerd zonder foutopsporing, wordt de in de IDE ingebouwde foutopsporing niet aangeroepen - uw onderbrekingspunten voor foutopsporing werken "niet".

Nu je weet hoe en waar de buildconfiguraties worden opgeslagen, laten we het verschil zien tussen de builds Debug en Release.

02

van 03

Buildconfiguratie: DEBUG - voor foutopsporing en ontwikkeling

Debug Build-configuratie in Delphi
Debug Build-configuratie in Delphi.Zarko Gajic

De standaard buildconfiguratie Debug, die u kunt vinden in de projectmanager voor uw Delphi-project, wordt gemaakt door Delphi wanneer u creëerde een nieuwe applicatie / project.

Configuratie voor foutopsporing schakelt optimalisatie uit en maakt foutopsporing mogelijk.

Om de buildconfiguratie te bewerken: klik met de rechtermuisknop op de configuratienaam, selecteer "Bewerken" in het contextmenu en u zult merken dat u naar het dialoogvenster Projectopties kijkt.

Debug-opties

Omdat debug de basisconfiguratie-build uitbreidt, worden de instellingen met een andere waarde vet weergegeven.

Voor Debug (en dus debugging) zijn de specifieke opties:

  • Delphi Compiler - Compileren - Code genereren - Optimalisatie UIT - de compiler zal GEEN aantal code-optimalisaties uitvoeren, zoals het plaatsen van variabelen in CPU-registers, het elimineren van algemene subuitdrukkingen en het genereren van inductievariabelen.
  • Delphi Compiler - Compileren - Code genereren - Frames stapelen AAN - stackframes worden altijd gegenereerd voor procedures en functies, zelfs als ze niet nodig zijn.
  • Delphi Compiler - Compileren - Debuggen - Foutopsporingsinformatie AAN - wanneer een programma of eenheid is samengesteld met deze optie ingeschakeld, de Met geïntegreerde debugger kunt u in één stap breekpunten instellen en instellen. Foutopsporingsinformatie die "aan" is, heeft geen invloed op de grootte of snelheid van het uitvoerbare programma - foutopsporingsinformatie wordt gecompileerd in de DCU's en wordt niet gekoppeld aan het uitvoerbare bestand.
  • Delphi Compiler - Compileren - Debuggen - Lokale symbolen AAN - Als een programma of eenheid is samengesteld met deze optie ingeschakeld, wordt de Met geïntegreerde debugger kunt u de lokale variabelen van de module onderzoeken en wijzigen. Lokale symbolen die "aan" staan, hebben geen invloed op de grootte of snelheid van het uitvoerbare programma.

OPMERKING: standaard is de "gebruik debug .dcus" optie is UIT. Als u deze optie inschakelt, kunt u dat doen debug Delphi VCL broncode (stel een breekpunt in de VCL in)

Laten we nu eens kijken waar "Release" over gaat ...

03

van 03

Buildconfiguratie: RELEASE - voor openbare distributie

Delphi Release Build-configuratie
Delphi Release Build-configuratie.Zarko Gajic

De standaard buildconfiguratie-release, die u in de projectmanager voor uw Delphi-project kunt vinden, wordt door Delphi gemaakt wanneer u een nieuwe applicatie / nieuw project aanmaakte.

Release-configuratie maakt optimalisatie mogelijk en schakelt debugging uit, de code wordt niet gegenereerd voor TRACE- en ASSERT-aanroepen, wat betekent dat de omvang van uw uitvoerbare bestand wordt verkleind.

Om de buildconfiguratie te bewerken: klik met de rechtermuisknop op de configuratienaam, selecteer "Bewerken" in het contextmenu en u zult merken dat u naar het dialoogvenster Projectopties kijkt.

Release-opties

Sinds release de basisconfiguratie-build uitbreidt, worden de instellingen met een andere waarde vet weergegeven.

Voor release (de versie die door de gebruikers van uw applicatie moet worden gebruikt - niet voor foutopsporing) zijn de specifieke opties:

  • Delphi Compiler - Compileren - Code genereren - Optimalisatie AAN - de compiler zal een aantal code-optimalisaties uitvoeren, zoals het plaatsen van variabelen in CPU-registers, het elimineren van algemene subuitdrukkingen en het genereren van inductievariabelen.
  • Delphi Compiler - Compileren - Code genereren - Frames stapelen UIT - stackframes worden NIET gegenereerd voor procedures en functies.
  • Delphi Compiler - Compileren - Debuggen - Foutopsporingsinformatie UIT - wanneer een programma of eenheid wordt samengesteld met deze optie uitgeschakeld, de geïntegreerde debugger laat je NIET single-step en breakpoints instellen.
  • Delphi Compiler - Compileren - Debuggen - Lokale symbolen UIT - Wanneer een programma of eenheid wordt samengesteld met deze optie uitgeschakeld, wordt de Met geïntegreerde debugger kunt u de lokale variabelen van de module NIET onderzoeken en wijzigen.

Dat zijn de standaardwaarden die Delphi heeft ingesteld voor een nieuw project. U kunt elk van de projectopties wijzigen om uw eigen versie van debugging of release build-configuraties te maken.

instagram story viewer