Debugowanie vs. Wydanie w konfiguracjach kompilacji Delphi 1/3

01

z 03

Konfiguracje kompilacji - podstawa: debugowanie, wydanie

Menedżer projektu Delphi
Menedżer projektu Delphi.Zarko Gajic

Okno Project Manager w twoim Delfy (RAD Studio) IDE wyświetla i organizuje zawartość bieżącej grupy projektów i zawartych w niej projektów. Spowoduje to wyświetlenie listy wszystkich jednostek, które są częścią twojego projektu, a także wszystkich zawartych formularzy i plików zasobów.

Sekcja Konfiguracje kompilacji zawiera listę różnych konfiguracji kompilacji dostępnych dla projektu.

Niektóre nowsze (poprawne: począwszy od Delphi 2007) Wersje Delphi mają dwie (trzy) domyślne konfiguracje kompilacji: DEBUG i RELEASE.

W artykule o kompilacji warunkowej 101 wspomniano o konfiguracjach kompilacji, ale nie wyjaśniono różnicy w szczegółach.

Debugowanie vs. Wydanie

Ponieważ możesz aktywować każdą konfigurację kompilacji, którą widzisz w Project Managerze, i zbudować swój projekt, tworząc inny plik wykonywalny, pytanie brzmi: Jaka jest różnica między debugowaniem a wydaniem?

Sama nazwa: „debug” i „release” powinna skierować cię w dobrym kierunku.

instagram viewer
  • Konfiguracja debugowania powinna być aktywna i używana podczas opracowywania, debugowania i zmiany aplikacji.
  • Konfiguracja wersji powinna zostać aktywowana podczas budowania Twojej aplikacji, aby wygenerowany plik wykonywalny został wysłany do użytkowników.

Pozostaje jednak pytanie: jaka jest różnica? Co możesz zrobić, gdy aktywne jest „debugowanie” i co zawiera ostateczny plik wykonywalny vs. jak wygląda plik wykonywalny po zastosowaniu „release”?

Konfiguruj kompilacje

Domyślnie istnieją trzy (chociaż w Menedżerze projektów widać tylko dwie) konfiguracje kompilacji utworzone przez Delphi po uruchomieniu nowego projektu. Są to Baza, Debugowanie i Wydanie.

The Konfiguracja podstawowa działa jako podstawowy zestaw wartości opcji który jest używany we wszystkich konfiguracjach, które następnie tworzysz.

Wspomniane wartości opcji to kompilacja i łączenie oraz inny zestaw opcji, które możesz zmienić dla swojego projektu za pomocą okna dialogowego Opcje projektu (menu główne: Projekt - Opcje).

The Konfiguracja debugowania rozszerza Base poprzez wyłączenie optymalizacji i włączenie debugowania, a także ustawienie określonych opcji składni.

The Zwolnij konfigurację rozszerza program Base, aby nie generował symbolicznych informacji debugowania, kod nie jest generowany dla wywołań TRACE i ASSERT, co oznacza, że ​​rozmiar pliku wykonywalnego jest zmniejszony.

Możesz dodać własne konfiguracje kompilacji i usunąć zarówno domyślne konfiguracje debugowania, jak i wydania, ale nie możesz usunąć wersji podstawowej.

Konfiguracje kompilacji są zapisywane w pliku projektu (.dproj). DPROJ jest plikiem XML, oto jak sekcja z konfiguracjami kompilacji:

00400000.. \ $ (Config) \ $ (Platforma) WinTypes = Windows; WinProcs = Windows; DbiTypes = BDE; DbiProcs = BDE; $ (DCC_UnitAlias). \ $ (Config) \ $ (Platforma) DEBUG; $ (DCC_Define) fałszywy. prawdziwe. fałszywy. RELEASE; $ (DCC_Define) 0. fałszywy.

Oczywiście nie zmienisz pliku DPROJ ręcznie, jest on obsługiwany przez Delphi.

* Możesz * zmienić nazwę konfiguracji kompilacji, * możesz * zmienić ustawienia każdej konfiguracji kompilacji, * możesz * zrobić to tak, aby „release” służyło do debugowania, a „debugowanie” było zoptymalizowane dla twoich klientów. Dlatego nie musisz wiedzieć, co robisz :)

Kompilowanie, budowanie, bieganie

Podczas pracy nad aplikacją, rozwijając ją, możesz kompilować, budować i uruchamiać aplikację bezpośrednio z IDE. Kompilacja, kompilacja i uruchomienie wygeneruje plik wykonywalny.

Kompilacja sprawdzi składnię kodu i skompiluje aplikację - biorąc pod uwagę tylko te pliki, które zmieniły się od czasu ostatniej Kompilacji. Kompilacja tworzy pliki DCU.

Budowanie jest rozszerzeniem kompilacji, w której kompilowane są wszystkie jednostki (nawet te niezmienione). Po zmianie opcji projektu powinieneś zbudować!

Uruchomienie kompiluje kod i uruchamia aplikację. Możesz uruchomić z debugowaniem (F9) lub bez debugowania (Ctrl + Shift + F9). Jeśli zostanie uruchomiony bez debugowania, debuger wbudowany w IDE nie zostanie wywołany - punkty przerwania debugowania nie będą działać.

Teraz, gdy wiesz, jak i gdzie są zapisywane konfiguracje kompilacji, zobaczmy różnicę między kompilacjami debugowania i wydania.

02

z 03

Konfiguracja kompilacji: DEBUG - do debugowania i programowania

Debugowanie konfiguracji kompilacji w Delphi
Debugowanie konfiguracji kompilacji w Delphi.Zarko Gajic

Domyślna konfiguracja kompilacji Debugowanie, którą można znaleźć w Menedżerze projektów dla projektu Delphi, jest tworzona przez Delphi podczas utworzył nową aplikację / projekt.

Konfiguracja debugowania wyłącza optymalizację i umożliwia debugowanie.

Aby edytować konfigurację kompilacji: kliknij prawym przyciskiem myszy nazwę konfiguracji, wybierz „Edytuj” z menu kontekstowego, a zobaczysz okno dialogowe Opcje projektu.

Opcje debugowania

Ponieważ debugowanie rozszerza kompilację konfiguracji podstawowej, ustawienia o innej wartości zostaną wyświetlone pogrubioną czcionką.

W przypadku debugowania (a zatem i debugowania) dostępne są następujące opcje:

  • Delphi Compiler - Kompilowanie - Generowanie kodu - Optymalizacja WYŁ - kompilator NIE przeprowadzi szeregu optymalizacji kodu, takich jak umieszczanie zmiennych w rejestrach procesora, eliminowanie typowych podwyrażeń i generowanie zmiennych indukcyjnych.
  • Delphi Compiler - Kompilowanie - Generowanie kodu - Układaj ramki włączone - ramki stosu są zawsze generowane dla procedur i funkcji, nawet gdy nie są potrzebne.
  • Delphi Compiler - Kompilowanie - Debugowanie - Informacje debugowania WŁĄCZONE - po kompilacji programu lub jednostki z włączoną tą opcją, zintegrowany debugger pozwala na jednoetapowe ustawianie punktów przerwania. Włączone informacje debugowania nie wpływają na rozmiar ani szybkość programu wykonywalnego - informacje debugowania są kompilowane w jednostkach DCU i nie są łączone z plikiem wykonywalnym.
  • Delphi Compiler - Kompilowanie - Debugowanie - Symbole lokalne WŁ - Po kompilacji programu lub jednostki z włączoną tą opcją, zintegrowany debugger pozwala badać i modyfikować lokalne zmienne modułu. Włączone symbole lokalne nie wpływają na rozmiar ani szybkość wykonywalnego programu.

UWAGA: domyślnie „użyj debugowania .dcus” opcja jest wyłączona. Włączenie tej opcji umożliwia debuguj kod źródłowy Delphi VCL (ustaw punkt przerwania w VCL)

Zobaczmy teraz, na czym polega „Wydanie” ...

03

z 03

Konfiguracja kompilacji: RELEASE - do publicznej dystrybucji

Konfiguracja kompilacji wydania Delphi
Konfiguracja kompilacji wydania Delphi.Zarko Gajic

Domyślna wersja kompilacji, którą można zlokalizować w Menedżerze projektów dla projektu Delphi, jest tworzona przez Delphi podczas tworzenia nowej aplikacji / projektu.

Konfiguracja wersji umożliwia optymalizację i wyłącza debugowanie, kod nie jest generowany dla wywołań TRACE i ASSERT, co oznacza, że ​​rozmiar pliku wykonywalnego jest zmniejszony.

Aby edytować konfigurację kompilacji: kliknij prawym przyciskiem myszy nazwę konfiguracji, wybierz „Edytuj” z menu kontekstowego, a zobaczysz okno dialogowe Opcje projektu.

Opcje wydania

Ponieważ wersja rozszerza kompilację konfiguracji podstawowej, ustawienia o innej wartości zostaną wyświetlone pogrubioną czcionką.

W przypadku wydania (wersja do użytku przez użytkowników aplikacji - nie do debugowania) dostępne są następujące opcje:

  • Kompilator Delphi - Kompilowanie - Generowanie kodu - Optymalizacja WŁ - kompilator przeprowadzi szereg optymalizacji kodu, takich jak umieszczanie zmiennych w rejestrach procesora, eliminowanie typowych podwyrażeń i generowanie zmiennych indukcyjnych.
  • Delphi Compiler - Kompilowanie - Generowanie kodu - Ustaw ramki WYŁĄCZONE - ramki stosu NIE są generowane dla procedur i funkcji.
  • Delphi Compiler - Kompilowanie - Debugowanie - Informacje debugowania wyłączone - po kompilacji programu lub jednostki z wyłączoną tą opcją, zintegrowany debugger NIE pozwala na jednoetapowe ustawianie punktów przerwania.
  • Delphi Compiler - Kompilowanie - Debugowanie - Symbole lokalne WYŁ - Po kompilacji programu lub jednostki z wyłączoną tą opcją, zintegrowany debugger NIE pozwala badać i modyfikować lokalnych zmiennych modułu.

Są to wartości domyślne ustawione przez Delphi dla nowego projektu. Możesz zmienić dowolną opcję projektu, aby utworzyć własną wersję konfiguracji debugowania lub kompilacji wydania.