Debug vs. Rilis dalam Delphi Build Configurations 1/3

01

dari 03

Build Configurations - Base: Debug, Release

Manajer Proyek Delphi
Manajer Proyek Delphi.Zarko Gajic

Jendela Manajer Proyek di Anda Delphi (RAD Studio) IDE menampilkan dan mengatur konten grup proyek Anda saat ini dan semua proyek yang dikandungnya. Ini akan mencantumkan semua unit yang merupakan bagian dari proyek Anda serta semua formulir dan file sumber daya yang disertakan.

Bagian Konfigurasi Konfigurasi akan mencantumkan berbagai konfigurasi konfigurasi yang Anda miliki untuk proyek Anda.

Beberapa lebih baru (untuk menjadi benar: mulai dari Delphi 2007) Versi Delphi memiliki dua (tiga) konfigurasi build default: DEBUG dan RELEASE.

Artikel Kompilasi 101 Bersyarat tidak menyebutkan konfigurasi pembangunan tetapi tidak menjelaskan perbedaan detailnya.

Debug vs. Melepaskan

Karena Anda dapat mengaktifkan masing-masing konfigurasi build yang Anda lihat di Project Manager dan membangun proyek Anda menghasilkan file executable yang berbeda, pertanyaannya adalah apa perbedaan antara Debug dan Rilis?

Penamaan itu sendiri: "debug" dan "rilis" akan mengarahkan Anda ke arah yang benar.

instagram viewer
  • Konfigurasi debug harus aktif dan digunakan saat kami sedang mengembangkan dan debugging dan mengubah aplikasi Anda.
  • Konfigurasi rilis harus diaktifkan ketika kami sedang membangun aplikasi Anda sehingga file yang dapat dieksekusi untuk dikirim ke pengguna.

Namun, pertanyaannya tetap: apa bedanya? Apa yang dapat Anda lakukan saat "debug" aktif dan apa yang termasuk dalam file final yang dapat dieksekusi vs. bagaimana tampilan yang dapat dieksekusi ketika "rilis" diterapkan?

Bangun Konfigurasi

Secara default, ada tiga (walaupun di Manajer Proyek Anda hanya melihat dua) membangun konfigurasi yang dibuat oleh Delphi ketika Anda memulai proyek baru. Itu adalah Base, Debug, dan Release.

Itu Konfigurasi dasar bertindak sebagai set dasar nilai opsi yang digunakan di semua konfigurasi yang selanjutnya Anda buat.

Nilai opsi yang disebutkan, adalah kompilasi dan menghubungkan dan serangkaian opsi lain yang dapat Anda ubah untuk proyek Anda menggunakan dialog Opsi Proyek (menu utama: Proyek - Opsi).

Itu Konfigurasi debug extends Base dengan menonaktifkan optimisasi dan mengaktifkan debugging, serta mengatur opsi sintaksis tertentu.

Itu Lepaskan konfigurasi meluas Base untuk tidak menghasilkan informasi debugging simbolis, kode tidak dihasilkan untuk panggilan TRACE dan ASSERT, yang berarti ukuran eksekusi Anda berkurang.

Anda bisa menambahkan konfigurasi build Anda sendiri, dan Anda bisa menghapus konfigurasi Debug dan Release default, tetapi Anda tidak bisa menghapus Base.

Konfigurasi build disimpan dalam file proyek (.dproj). DPROJ adalah file XML, inilah bagian dengan konfigurasi build:

00400000.. \ $ (Config) \ $ (Platform) WinTypes = Windows; WinProcs = Windows; DbiTypes = BDE; DbiProcs = BDE; $ (DCC_UnitAlias). \ $ (Config) \ $ (Platform) DEBUG; $ (DCC_Define) Salah. benar. Salah. RELEASE; $ (DCC_Define) 0. Salah.

Tentu saja, Anda tidak akan mengubah file DPROJ secara manual, itu dikelola oleh Delphi.

Anda * dapat * mengubah nama konfigurasi bangunan, Anda * dapat * mengubah pengaturan untuk setiap konfigurasi membangun, Anda * dapat * membuatnya sehingga "rilis" untuk debugging dan "debug" dioptimalkan untuk klien Anda. Karena itu Anda tidak perlu tahu apa yang Anda lakukan :)

Kompilasi, Bangunan, Berlari

Ketika Anda mengerjakan aplikasi Anda, mengembangkannya, Anda dapat mengkompilasi, membangun, dan menjalankan aplikasi langsung dari IDE. Mengkompilasi, membangun, dan menjalankan akan menghasilkan file yang dapat dieksekusi.

Kompilasi akan memeriksa kode Anda sintaks dan akan mengkompilasi aplikasi - dengan mempertimbangkan hanya file-file yang telah berubah sejak Build terakhir. Kompilasi menghasilkan file DCU.

Bangunan adalah ekstensi untuk mengkompilasi di mana semua unit (bahkan yang tidak diubah) dikompilasi. Ketika Anda mengubah opsi proyek, Anda harus membangun!

Menjalankan kompilasi kode dan menjalankan aplikasi. Anda dapat menjalankan dengan debugging (F9) atau tanpa debugging (Ctrl + Shift + F9). Jika dijalankan tanpa debugging, debugger yang ada di IDE tidak akan dipanggil - breakpoint debugging Anda akan "tidak" berfungsi.

Sekarang setelah Anda tahu bagaimana dan di mana konfigurasi build disimpan, mari kita lihat perbedaan antara build Debug dan Release.

02

dari 03

Konfigurasi Bangun: DEBUG - untuk Debugging dan Pengembangan

Konfigurasi Pembuatan Debug di Delphi
Konfigurasi Pembuatan Debug di Delphi.Zarko Gajic

Debug konfigurasi build default, yang dapat Anda temukan di Project Manager untuk proyek Delphi Anda, dibuat oleh Delphi saat Anda membuat aplikasi / proyek baru.

Konfigurasi debug menonaktifkan optimasi dan memungkinkan debugging.

Untuk mengedit konfigurasi bangunan: klik kanan nama konfigurasi, pilih "Edit" dari menu konteks dan Anda akan melihat kotak dialog Opsi Proyek.

Opsi Debug

Karena debug memperluas build konfigurasi Base, pengaturan yang memiliki nilai berbeda akan ditampilkan dalam huruf tebal.

Untuk Debug (dan karenanya debugging) opsi spesifik adalah:

  • Delphi Compiler - Kompilasi - Pembuatan Kode - Optimasi MATI - kompiler TIDAK akan melakukan sejumlah optimasi kode, seperti menempatkan variabel dalam register CPU, menghilangkan subekspresi umum, dan menghasilkan variabel induksi.
  • Delphi Compiler - Kompilasi - Pembuatan Kode - Stack Frames AKTIF - frame stack selalu dihasilkan untuk prosedur dan fungsi, bahkan ketika itu tidak diperlukan.
  • Delphi Compiler - Kompilasi - Debugging - Informasi Debug AKTIF - ketika suatu program atau unit dikompilasi dengan opsi ini diaktifkan, the debugger terintegrasi memungkinkan Anda melakukan satu langkah dan mengatur breakpoints. Informasi debug yang "aktif" tidak memengaruhi ukuran atau kecepatan program yang dapat dieksekusi - informasi debug dikompilasi ke dalam DCU dan tidak terhubung ke yang dapat dieksekusi.
  • Delphi Compiler - Kompilasi - Debugging - Simbol lokal AKTIF - Ketika suatu program atau unit dikompilasi dengan opsi ini diaktifkan, maka debugger terintegrasi memungkinkan Anda memeriksa dan memodifikasi variabel lokal modul. Simbol lokal yang "aktif" tidak memengaruhi ukuran atau kecepatan program yang dapat dieksekusi.

CATATAN: secara default, "gunakan debug .dcus" opsi MATI. Menyetel opsi ini memungkinkan Anda untuk debug kode sumber Delphi VCL (atur breakpoint di VCL)

Sekarang mari kita lihat apa "Rilis" tentang ...

03

dari 03

Konfigurasi Bangun: RELEASE - untuk Distribusi Publik

Konfigurasi Pembuatan Rilis Delphi
Konfigurasi Pembuatan Rilis Delphi.Zarko Gajic

Rilis konfigurasi build default, Anda dapat menemukan di Project Manager untuk proyek Delphi Anda, dibuat oleh Delphi ketika Anda membuat aplikasi / proyek baru.

Konfigurasi rilis memungkinkan pengoptimalan dan menonaktifkan debugging, kode tidak dihasilkan untuk panggilan TRACE dan ASSERT, artinya ukuran eksekusi Anda berkurang.

Untuk mengedit konfigurasi bangunan: klik kanan nama konfigurasi, pilih "Edit" dari menu konteks dan Anda akan melihat kotak dialog Opsi Proyek.

Opsi Rilis

Karena rilis memperluas build konfigurasi Base, pengaturan yang memiliki nilai berbeda akan ditampilkan dalam huruf tebal.

Untuk Rilis (versi yang akan digunakan oleh pengguna aplikasi Anda - bukan untuk debugging) opsi spesifik adalah:

  • Delphi Compiler - Kompilasi - Pembuatan Kode - Optimasi AKTIF - kompiler akan melakukan sejumlah optimasi kode, seperti menempatkan variabel dalam register CPU, menghilangkan subekspresi umum, dan menghasilkan variabel induksi.
  • Delphi Compiler - Kompilasi - Pembuatan Kode - Tumpukan Frame MATI - frame stack TIDAK dihasilkan untuk prosedur dan fungsi.
  • Delphi Compiler - Kompilasi - Debugging - Informasi Debug OFF - ketika suatu program atau unit dikompilasi dengan opsi ini dinonaktifkan, menu debugger terintegrasi TIDAK membiarkan Anda satu langkah dan mengatur breakpoints.
  • Delphi Compiler - Kompilasi - Debugging - Simbol lokal MATI - Ketika sebuah program atau unit dikompilasi dengan opsi ini dinonaktifkan, menu debugger terintegrasi TIDAK memungkinkan Anda memeriksa dan memodifikasi variabel lokal modul.

Itu adalah nilai default yang ditetapkan oleh Delphi untuk proyek baru. Anda dapat mengubah salah satu opsi Proyek untuk membuat versi Anda sendiri debugging atau melepaskan konfigurasi build.