Debug vs. Απελευθέρωση στις Δέσποιες Δημιουργία Διαμορφώσεων 1/3

01

από 03

Δημιουργία παραμέτρων - Βάση: Debug, Release

Διευθυντής έργου Delphi
Διευθυντής έργου Delphi.Ζάρκο Γκάιτς

Το παράθυρο του Project Manager στο Δελφοί (RAD Studio) Το IDE προβάλλει και οργανώνει τα περιεχόμενα της τρέχουσας ομάδας έργου και των έργων που περιέχει. Θα περιλαμβάνει όλες τις μονάδες που αποτελούν μέρος του έργου σας καθώς και όλες τις μορφές και τα αρχεία πόρων που περιλαμβάνονται.

Η ενότητα "Δημιουργία παραμέτρων" θα απαριθμεί διάφορες διαμορφώσεις κατασκευής που έχετε για το έργο σας.

Κάποια πιο πρόσφατα (να είναι σωστά: ξεκινώντας από Δελφοί 2007) Οι εκδόσεις Delphi έχουν δύο (τρεις) προεπιλεγμένες διαμορφώσεις δημιουργίας: DEBUG και RELEASE.

Το άρθρο Conditional Compilation 101 αναφέρεται στις διαμορφώσεις κατασκευής αλλά δεν εξηγεί τη διαφορά στις λεπτομέρειες.

Debug vs. Ελευθέρωση

Εφόσον μπορείτε να ενεργοποιήσετε καθεμιά από τις διαμορφώσεις δημιουργίας που βλέπετε στο Project Manager και να δημιουργήσετε το έργο σας δημιουργώντας ένα διαφορετικό εκτελέσιμο αρχείο, η ερώτηση είναι ποια είναι η διαφορά μεταξύ του εντοπισμού σφαλμάτων και της απελευθέρωσης;

instagram viewer

Η ίδια η ονομασία: "debug" και "release" πρέπει να σας κατευθύνουν προς τη σωστή κατεύθυνση.

  • Η διαμόρφωση του εντοπισμού σφαλμάτων πρέπει να είναι ενεργή και να χρησιμοποιείται, ενώ αναπτύσσουμε και εντοπίζουμε σφάλματα και αλλάζουμε την εφαρμογή σας.
  • Η διαμόρφωση απελευθέρωσης θα πρέπει να ενεργοποιείται όταν δημιουργούμε την εφαρμογή σας έτσι ώστε το παραγόμενο εκτελέσιμο αρχείο να αποσταλεί στους χρήστες.

Ωστόσο, παραμένει το ερώτημα: ποια είναι η διαφορά; Τι μπορείτε να κάνετε ενώ το "debug" είναι ενεργό και τι περιλαμβάνεται στο τελικό εκτελέσιμο αρχείο εναντίον πώς εμφανίζεται η εκτελέσιμη εμφάνιση όταν εφαρμόζεται "απελευθέρωση";

Δημιουργία παραμέτρων

Από προεπιλογή, υπάρχουν τρεις (παρόλο που στο Project Manager βλέπετε μόνο δύο) τις διαμορφώσεις δημιουργίας που δημιουργήθηκαν από Delphi όταν ξεκινάτε ένα νέο έργο. Αυτά είναι το Base, Debug και Release.

ο Διαμόρφωση βάσης ενεργεί ως σύνολο βάσεων τιμές επιλογής που χρησιμοποιείται σε όλες τις διαμορφώσεις που δημιουργείτε στη συνέχεια.

Οι τιμές επιλογής που αναφέρονται είναι οι σύνταξη και σύνδεση και ένα άλλο σύνολο επιλογών που μπορείτε να αλλάξετε για το έργο σας χρησιμοποιώντας το παράθυρο διαλόγου Επιλογές έργου (κύριο μενού: Έργο - Επιλογές).

ο Διαμόρφωση σφαλμάτων επεκτείνει τη Βάση απενεργοποιώντας τη βελτιστοποίηση και ενεργοποιώντας το σφάλμα, καθώς και καθορίζοντας συγκεκριμένες επιλογές σύνταξης.

ο Διαμόρφωση απελευθέρωσης επεκτείνει τη Βάση ώστε να μην παράγει συμβολικές πληροφορίες εντοπισμού σφαλμάτων, ο κώδικας δεν δημιουργείται για κλήσεις TRACE και ASSERT, πράγμα που σημαίνει ότι το μέγεθος του εκτελέσιμου σας αρχείου μειώνεται.

Μπορείτε να προσθέσετε τις δικές σας διαμορφώσεις δημιουργίας και μπορείτε να διαγράψετε και τις δύο προεπιλεγμένες διαμορφώσεις Debug και Release, αλλά δεν μπορείτε να διαγράψετε το βασικό.

Οι διαμορφώσεις δημιουργίας αποθηκεύονται στο αρχείο έργου (.dproj). Το DPROJ είναι ένα αρχείο XML, εδώ είναι πώς το τμήμα με τις διαμορφώσεις κατασκευής:

00400000.. \ $ (Config) \ $ (Πλατφόρμα) WinTypes = Windows; WinProcs = Windows; DbiTypes = BDE; DbiProcs = BDE, $ (DCC_UnitAlias). \ $ (Config) \ $ (Πλατφόρμα) DEBUG, $ (DCC_Define) ψευδής. αληθής. ψευδής. RELEASE; $ (DCC_Define) 0. ψευδής.

Φυσικά, δεν θα αλλάξετε το αρχείο DPROJ με ​​το χέρι, διατηρείται από τους Δελφούς.

Μπορείτε * να * μετονομάσετε τις διαμορφώσεις κατασκευής, μπορείτε * να αλλάξετε τις ρυθμίσεις για κάθε διαμόρφωση κατασκευής, μπορείτε * να * το κάνετε έτσι ώστε η "απελευθέρωση" να είναι για το σφάλμα και το "debug" έχει βελτιστοποιηθεί για τους πελάτες σας. Επομένως δεν χρειάζεται να ξέρετε τι κάνετε :)

Σύνταξη, Κτίριο, Τρέξιμο

Καθώς εργάζεστε στην εφαρμογή σας, την αναπτύξετε, μπορείτε να μεταγλωττίσετε, να δημιουργήσετε και να εκτελέσετε την εφαρμογή απευθείας από τον IDE. Η δημιουργία, η κατασκευή και η λειτουργία θα παράγουν το εκτελέσιμο αρχείο.

Η σύνταξη θα ελέγξει τον κώδικα σας και θα μεταγλωττίσει την εφαρμογή - λαμβάνοντας υπόψη μόνο τα αρχεία που έχουν αλλάξει από την τελευταία Κατασκευή. Η σύνταξη δημιουργεί αρχεία DCU.

Το κτίριο είναι μια επέκταση στην καταγραφή όπου όλες οι μονάδες (ακόμα και αυτές που δεν έχουν αλλάξει) είναι συγκεντρωμένες. Όταν αλλάζετε τις επιλογές του έργου θα πρέπει να χτίσετε!

Το τρέξιμο συντάσσει τον κώδικα και εκτελεί την εφαρμογή. Μπορείτε να τρέξετε με σφάλμα (F9) ή χωρίς σφάλμα (Ctrl + Shift + F9). Εάν εκτελείται χωρίς εντοπισμό σφαλμάτων, το πρόγραμμα εντοπισμού σφαλμάτων που είναι ενσωματωμένο στο IDE δεν θα ενεργοποιηθεί - τα σημεία διακοπής εντοπισμού σφαλμάτων δεν θα λειτουργήσουν.

Τώρα που ξέρετε πώς και πού αποθηκεύονται οι διαμορφώσεις κατασκευής, ας δούμε τη διαφορά μεταξύ των κτιρίων Debug και Release.

02

από 03

Δημιουργία διαμόρφωσης: DEBUG - για σφαλμάτωση και ανάπτυξη

Ρύθμιση παραμέτρων εντοπισμού σφαλμάτων στους Δελφούς
Ρύθμιση παραμέτρων εντοπισμού σφαλμάτων στους Δελφούς.Ζάρκο Γκάιτς

Η προκαθορισμένη διαμόρφωση δημιουργίας εντοπισμού σφαλμάτων, που μπορείτε να εντοπίσετε στο Project Manager για το έργο Delphi, δημιουργείται από τους Delphi όταν δημιούργησε μια νέα εφαρμογή / έργο.

Η ρύθμιση παραμέτρων εντοπισμού σφαλμάτων απενεργοποιεί τη βελτιστοποίηση και ενεργοποιεί την εκκαθάριση.

Για να επεξεργαστείτε τη διαμόρφωση δημιουργίας: κάντε δεξί κλικ στο όνομα διαμόρφωσης, επιλέξτε "Επεξεργασία" από το μενού περιβάλλοντος και θα βρεθείτε στο παράθυρο διαλόγου Επιλογές έργου.

Επιλογές εντοπισμού σφαλμάτων

Δεδομένου ότι η εκτίμηση σφαλμάτων επεκτείνει τη δημιουργία παραμέτρων βάσης, αυτές οι ρυθμίσεις που έχουν διαφορετική τιμή θα εμφανίζονται με έντονους χαρακτήρες.

Για τον εντοπισμό σφαλμάτων (και ως εκ τούτου την επίλυση σφαλμάτων), οι συγκεκριμένες επιλογές είναι:

  • Delphi Compiler - Σύνταξη - Δημιουργία Κώδικα - Βελτιστοποίηση OFF - ο μεταγλωττιστής ΔΕΝ θα εκτελέσει έναν αριθμό βελτιστοποιήσεων κώδικα, όπως την τοποθέτηση μεταβλητών σε καταχωρητές της CPU, την εξάλειψη των κοινών υποεκφράσεων και την παραγωγή μεταβλητών επαγωγής.
  • Delphi Compiler - Σύνταξη - Δημιουργία Κώδικα - Τα πλαίσια στοίβας είναι ενεργοποιημένα - Τα πλαίσια στοίβας παράγονται πάντα για διαδικασίες και λειτουργίες, ακόμη και όταν δεν χρειάζονται.
  • Delphi Compiler - Σύνταξη - Debugging - Πληροφορίες εντοπισμού σφαλμάτων ON - όταν ένα πρόγραμμα ή μια μονάδα έχει συνταχθεί με αυτήν την επιλογή ενεργοποιημένη, το το ενσωματωμένο πρόγραμμα εντοπισμού σφαλμάτων σάς επιτρέπει να πραγματοποιήσετε ένα βήμα και να ορίσετε σημεία διακοπής. Οι πληροφορίες εντοπισμού σφαλμάτων που είναι "ενεργοποιημένες" δεν επηρεάζουν το μέγεθος ή την ταχύτητα του εκτελέσιμου προγράμματος - οι πληροφορίες εντοπισμού σφαλμάτων καταρτίζονται στα DCU και δεν συνδέονται στο εκτελέσιμο αρχείο.
  • Delphi Compiler - Σύνταξη - Debugging - Τοπικά σύμβολα ενεργοποιημένα - Όταν ένα πρόγραμμα ή μια μονάδα έχει συνταχθεί με αυτήν την επιλογή ενεργοποιημένη, το το ολοκληρωμένο πρόγραμμα εντοπισμού σφαλμάτων σάς επιτρέπει να εξετάσετε και να τροποποιήσετε τις τοπικές μεταβλητές της μονάδας. Τα τοπικά σύμβολα που είναι "ενεργοποιημένα" δεν επηρεάζουν το μέγεθος ή την ταχύτητα του εκτελέσιμου προγράμματος.

ΣΗΜΕΙΩΣΗ: από προεπιλογή, το "χρήση εντοπισμού σφαλμάτων .dcus" είναι απενεργοποιημένη. Ο ορισμός αυτής της επιλογής σας δίνει τη δυνατότητα εντοπίστε τον κώδικα πηγής Delphi VCL (ορίστε ένα σημείο διακοπής στο VCL)

Ας δούμε τώρα τι είναι "Release" ...

03

από 03

Δημιουργία διαμόρφωσης: RELEASE - για δημόσια διανομή

Δημιουργία διαμόρφωσης απελευθέρωσης Delphi
Δημιουργία διαμόρφωσης απελευθέρωσης Delphi.Ζάρκο Γκάιτς

Η προεπιλεγμένη ρύθμιση παραμέτρων κατασκευής Η έκδοση, που μπορείτε να εντοπίσετε στο Project Manager για το έργο Delphi, δημιουργείται από τους Delphi όταν δημιουργήσατε μια νέα εφαρμογή / έργο.

Η διαμόρφωση απελευθέρωσης επιτρέπει τη βελτιστοποίηση και απενεργοποιεί την αποσφαλμάτωση, ο κώδικας δεν δημιουργείται για κλήσεις TRACE και ASSERT, πράγμα που σημαίνει ότι το μέγεθος του εκτελέσιμου σας αρχείου μειώνεται.

Για να επεξεργαστείτε τη διαμόρφωση δημιουργίας: κάντε δεξί κλικ στο όνομα διαμόρφωσης, επιλέξτε "Επεξεργασία" από το μενού περιβάλλοντος και θα βρεθείτε στο παράθυρο διαλόγου Επιλογές έργου.

Επιλογές απελευθέρωσης

Εφόσον η έκδοση επεκτείνει τη διαμόρφωση βάσης, οι ρυθμίσεις που έχουν διαφορετική τιμή θα εμφανίζονται με έντονους χαρακτήρες.

Για την έκδοση (η έκδοση που θα χρησιμοποιηθούν από τους χρήστες της εφαρμογής σας - όχι για την επιδιόρθωση σφαλμάτων) οι συγκεκριμένες επιλογές είναι:

  • Delphi Compiler - Καταγραφή - Παραγωγή κώδικα - Βελτιστοποίηση ON - ο μεταγλωττιστής θα εκτελέσει έναν αριθμό βελτιστοποιήσεων κώδικα, όπως την τοποθέτηση μεταβλητών σε καταχωρητές της CPU, την εξάλειψη κοινών υποεκφράσεων και την παραγωγή μεταβλητών επαγωγής.
  • Delphi Compiler - Σύνταξη - Δημιουργία Κώδικα - Τα πλαίσια στοίβας είναι απενεργοποιημένα - Τα πλαίσια στοίβας ΔΕΝ παράγονται για διαδικασίες και λειτουργίες.
  • Delphi Compiler - Σύνταξη - Debugging - Οι πληροφορίες εντοπισμού σφαλμάτων είναι OFF - όταν ένα πρόγραμμα ή μια μονάδα έχει συνταχθεί με αυτήν την επιλογή απενεργοποιημένη, το το ενσωματωμένο εργαλείο εντοπισμού σφαλμάτων ΔΕΝ σας επιτρέπει να κάνετε ένα βήμα και να ορίσετε σημεία διακοπής.
  • Delphi Compiler - Σύνταξη - Debugging - Τα τοπικά σύμβολα είναι εκτός λειτουργίας - Όταν ένα πρόγραμμα ή μια μονάδα έχει συνταχθεί με αυτήν την επιλογή απενεργοποιημένη, το το ολοκληρωμένο εργαλείο εντοπισμού σφαλμάτων ΔΕΝ σας αφήνει να εξετάσετε και να τροποποιήσετε τις τοπικές μεταβλητές της μονάδας.

Αυτές είναι οι προκαθορισμένες τιμές που ορίζονται από τους Delphi για ένα νέο έργο. Μπορείτε να τροποποιήσετε οποιεσδήποτε από τις επιλογές του έργου για να κάνετε τη δική σας έκδοση για την εκτύπωση σφαλμάτων ή την έκδοση συνθέσεων δημιουργίας.