Debug DLL di Visual Studio (C#, C++, Visual Basic, F#)
DLL (perpustakaan taut-dinamis) adalah pustaka yang berisi kode dan data yang dapat digunakan oleh lebih dari satu aplikasi. Gunakan Visual Studio untuk membuat, membangun, mengonfigurasi, dan men-debug DLL.
Buat DLL
Templat proyek Visual Studio berikut ini dapat membuat DLL:
- Pustaka Kelas C#, Visual Basic, atau F#
- Pustaka C# atau Visual Basic Formulir Windows Control (WCF)
- Pustaka Dynamic-Link C++ (DLL)
Untuk informasi selengkapnya, lihat Teknik penelusuran kesalahan MFC.
Menelusuri kesalahan Pustaka WCF mirip dengan menelusuri kesalahan Pustaka Kelas. Untuk detailnya, lihat Kontrol Formulir Windows.
Anda biasanya memanggil DLL dari proyek lain. Saat Anda menelususri kesalahan proyek panggilan, tergantung pada konfigurasi DLL, Anda dapat masuk dan menelusuri kesalahan kode DLL.
Konfigurasi debug DLL
Saat Anda menggunakan templat proyek Visual Studio untuk membuat aplikasi, Visual Studio secara otomatis membuat pengaturan yang diperlukan untuk konfigurasi build Debug dan Rilis. Anda dapat mengubah pengaturan ini jika perlu. Untuk informasi lebih lanjut, baca artikel berikut:
- Pengaturan proyek untuk konfigurasi debug C++
- Pengaturan proyek untuk konfigurasi debug .NET C#
- Pengaturan proyek untuk konfigurasi debug C#
- pengaturan proyek untuk konfigurasi debug Visual Basic
- Cara: Mengatur Konfigurasi Debug dan Rilis
Mengatur C++ DebuggableAttribute
Agar debugger melampirkan ke DLL C++, kode C++ harus memancarkan DebuggableAttribute
.
Untuk mengatur DebuggableAttribute
:
Pilih proyek C++ DLL di Penjelajah Solusi dan pilih ikon Properti, atau klik kanan proyek dan pilih Properti.
Di panel Properti, di bawahPenelusuran Kesalahan>Linker, pilih Ya (/ASSEMBLYDEBUG) untuk Perakitan yang Dapat Di-debug.
Untuk informasi selengkapnya, lihat /ASSEMBLYDEBUG.
Atur lokasi file C/C++ DLL
Untuk men-debug DLL eksternal, proyek panggilan harus dapat menemukan DLL, file .pdb-nya, dan file lain yang diperlukan DLL. Anda dapat membuat tugas build kustom untuk menyalin file-file ini ke <folder> proyek\Folder output debug, atau Anda dapat menyalin file di sana secara manual.
Untuk proyek C/C++, Anda dapat mengatur lokasi file header dan LIB di halaman properti proyek, alih-alih menyalinnya ke folder output.
Untuk mengatur header C/C++ dan lokasi file LIB:
Pilih proyek C++ DLL di Penjelajah Solusi dan pilih ikon Properti, atau klik kanan proyek dan pilih Properti.
Di bagian atas panel Properti, di bawah Konfigurasi, pilih Semua Konfigurasi.
Di bawah C/C++>General>Additional Include Directories, tentukan folder yang memiliki file header.
Di bawah Linker>General>Additional Libraries Directories, tentukan folder yang memiliki file LIB.
Di bawahInput>Linker>Dependensi Tambahan, tentukan jalur lengkap dan nama file untuk file LIB.
Pilih OK.
Untuk informasi selengkapnya tentang pengaturan proyek C++, lihat referensi halaman properti C++ Windows.
Membuat versi Debug
Pastikan untuk membuat versi Debug DLL sebelum Anda memulai penelusuran kesalahan. Untuk men-debug DLL, aplikasi panggilan harus dapat menemukan file .pdb dan file lain yang diperlukan DLL.
Anda dapat membuat tugas build kustom untuk menyalin file-file ini ke <folder> proyek\Folder output debug, atau Anda dapat menyalin file di sana secara manual.
Pastikan untuk memanggil DLL di lokasi yang benar. Ini mungkin tampak jelas, tetapi jika aplikasi panggilan menemukan dan memuat salinan DLL yang berbeda, debugger tidak akan pernah mencapai titik henti yang Anda tetapkan.
Men-debug DLL
Anda tidak dapat menjalankan DLL secara langsung. Ini harus dipanggil oleh aplikasi, biasanya file .exe. Untuk informasi selengkapnya, lihat Proyek Visual Studio - C++.
Untuk men-debug DLL, Anda dapat memulai penelusuran kesalahan dari aplikasi panggilan, atau men-debug dari proyek DLL dengan menentukan aplikasi panggilannya. Anda juga dapat menggunakan jendela Langsung debugger untuk mengevaluasi fungsi atau metode DLL pada waktu desain, tanpa menggunakan aplikasi panggilan.
Untuk informasi selengkapnya, lihat Pandangan pertama pada debugger.
Mulai penelusuran kesalahan dari aplikasi panggilan
Aplikasi yang memanggil DLL dapat berupa:
- Aplikasi dari proyek Visual Studio dalam solusi yang sama atau berbeda dari DLL.
- Aplikasi yang sudah ada dan yang sudah disebarkan dan berjalan pada komputer pengujian atau produksi.
- Terletak di web dan diakses melalui URL.
- Aplikasi web dengan halaman web yang menyematkan DLL.
.Untuk men-debug DLL dari aplikasi panggilan, Anda dapat:
Buka proyek untuk aplikasi panggilan, dan mulai penelusuran kesalahan dengan memilih Debug>Mulai Debugging atau menekan F5.
or
Lampirkan ke aplikasi yang sudah disebarkan dan berjalan pada komputer pengujian atau produksi. Gunakan metode ini untuk DLL di situs web atau di aplikasi web. Untuk informasi selengkapnya, lihat Cara: Melampirkan ke proses yang sedang berjalan.
Sebelum Anda mulai menelussuri kesalahan aplikasi panggilan, atur titik henti di DLL. Lihat Menggunakan titik henti. Ketika titik henti DLL terpukul, Anda dapat menelusuri kode, mengamati tindakan di setiap baris. Untuk informasi selengkapnya, lihat Menavigasi kode di debugger.
Selama penelusuran kesalahan, Anda dapat menggunakan jendela Modul untuk memverifikasi DLL dan .exe file yang dimuat aplikasi. Untuk membuka jendela Modul, saat menelususri kesalahan, pilih Debug>Windows>Modules. Untuk informasi selengkapnya, lihat Cara: Menggunakan jendela Modul.
Menggunakan jendela Langsung
Anda dapat menggunakan jendela Langsung untuk mengevaluasi fungsi atau metode DLL pada waktu desain. Jendela Langsung memainkan peran aplikasi panggilan.
Catatan
Anda dapat menggunakan jendela Langsung pada waktu desain dengan sebagian besar jenis proyek. Ini tidak didukung untuk SQL, proyek web, atau skrip.
Misalnya, untuk menguji metode bernama Test
di kelas Class1
:
Dengan proyek DLL terbuka, buka jendela Langsung dengan memilih Debug>Windows>Immediate atau menekan Ctrl+Alt+I.
Buat instans objek jenis
Class1
dengan mengetik kode C# berikut di jendela Langsung dan menekan Enter. Kode terkelola ini berfungsi untuk C# dan Visual Basic, dengan perubahan sintaks yang sesuai:Class1 obj = new Class1();
Dalam C#, semua nama harus sepenuhnya memenuhi syarat. Metode atau variabel apa pun harus berada dalam cakupan dan konteks saat ini ketika layanan bahasa mencoba mengevaluasi ekspresi.
Dengan asumsi yang
Test
mengambil satuint
parameter, evaluasiTest
menggunakan jendela Langsung :?obj.Test(10);
Hasilnya dicetak di jendela Langsung.
Anda dapat terus men-debug
Test
dengan menempatkan titik henti di dalamnya, lalu mengevaluasi fungsi lagi.Titik henti akan terpukul, dan Anda dapat melangkah melalui
Test
. Setelah eksekusi meninggalkanTest
, debugger akan kembali dalam mode desain.
Penelusuran kesalahan mode campuran
Anda dapat menulis aplikasi panggilan untuk DLL dalam kode terkelola atau asli. Jika aplikasi asli Anda memanggil DLL terkelola dan Anda ingin men-debug keduanya, Anda dapat mengaktifkan debugger terkelola dan asli di properti proyek. Proses yang tepat tergantung pada apakah Anda ingin memulai penelusuran kesalahan dari proyek DLL atau proyek aplikasi panggilan. Untuk mengetahui informasi selengkapnya, lihat Cara: Mendebug dalam mode campuran.
Anda juga dapat men-debug DLL asli dari proyek panggilan terkelola. Untuk informasi selengkapnya, lihat Cara men-debug kode terkelola dan asli.
Konten terkait
- Debug kode terkelola
- Bersiap untuk men-debug proyek C++
- Jenis proyek C#, F#, dan Visual Basic
- Pengaturan proyek untuk konfigurasi debug C++
- Pengaturan proyek untuk konfigurasi debug .NET C#
- Pengaturan proyek untuk konfigurasi Debug C#
- Pengaturan proyek untuk konfigurasi Debug Visual Basic
- Keamanan debugger
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk