Sabtu, 26 September 2026
16:23 WIB
TERKINI
Bandar Lampung Semangat Anak Sawah: Harumkan Nama Lampung di Kancah Nasional Tanpa Dukungan Pemda Lampung Selatan Gunung Anak Krakatau Kembali Erupsi, Status Siaga Tetap Dipertahankan Bandar Lampung BPS Lampung Tuntaskan Sensus Ekonomi 2026, Hasilnya Siap Rilis Awal 2027 Bandar Lampung Inovasi Double Teaching: Guru Ahli Berbagi Ilmu Lintas Sekolah di Lampung Bandar Lampung Coki, Buaya Peliharaan Warga Panjang yang Bikin Haru Jelang Evakuasi KKP Lampung Tekuni Hobi Sejak Kuliah, Dani Tetap Bertahan Jual Ikan Hias di Tengah Tantangan Cuaca Prakiraan Cuaca Lampung 26 September 2026: Cerah Berawan dan Potensi Hujan Humaniora Perlindungan Anak Digital: MPR Desak Komitmen Global Terwujud Nyata di Tanah Air Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG Bandar Lampung Semangat Anak Sawah: Harumkan Nama Lampung di Kancah Nasional Tanpa Dukungan Pemda Lampung Selatan Gunung Anak Krakatau Kembali Erupsi, Status Siaga Tetap Dipertahankan Bandar Lampung BPS Lampung Tuntaskan Sensus Ekonomi 2026, Hasilnya Siap Rilis Awal 2027 Bandar Lampung Inovasi Double Teaching: Guru Ahli Berbagi Ilmu Lintas Sekolah di Lampung Bandar Lampung Coki, Buaya Peliharaan Warga Panjang yang Bikin Haru Jelang Evakuasi KKP Lampung Tekuni Hobi Sejak Kuliah, Dani Tetap Bertahan Jual Ikan Hias di Tengah Tantangan Cuaca Prakiraan Cuaca Lampung 26 September 2026: Cerah Berawan dan Potensi Hujan Humaniora Perlindungan Anak Digital: MPR Desak Komitmen Global Terwujud Nyata di Tanah Air Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG
Pengawakutu

Pengawakutu

program komputer yang digunakan untuk menguji dan mengawakutu program lain

250px-Winpdb-1.3.6.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail
Tampilan antarmuka grafis dari pengawakutu Winpdb yang digunakan untuk menguji kode program.

Pengawakutu (bahasa Inggris:debugger) adalah program komputer khusus yang digunakan oleh pemrogram untuk menguji, memantau, dan melakukan pengawakutuan terhadap program lainnya (yang disebut sebagai program target).

Kode program yang diujikan biasanya dijalankan di bawah kontrol pengawakutu, sehingga alur eksekusinya dapat direkayasa. Program target dapat dijalankan pada sebuah arsitektur asli atau melalui simulator set instruksi (instruction set simulator/ISS) untuk mensimulasikan lingkungan perangkat keras tertentu. Beberapa pengawakutu modern menawarkan dua mode operasi, yaitu simulasi parsial atau simulasi penuh, untuk membatasi dampak pengujian terhadap stabilitas sistem operasi utama.

Ketika sebuah program mengalami mogok (crash) akibat adanya kutu pemrograman, pengawakutu dapat menunjukkan lokasi persis baris kode yang memicu kegagalan tersebut. Hal ini umumnya terjadi jika program mencoba mengeksekusi instruksi ilegal yang tidak tersedia pada CPU, atau ketika program melakukan pelanggaran akses dengan mencoba membaca atau menulis ke lokasi memori yang dilindungi.

Fitur utama

Sebuah pengawakutu umumnya menyediakan kendali penuh atas jalannya eksekusi program target melalui fitur-fitur berikut:

  • Titik henti (Breakpoint): Menghentikan eksekusi program secara temporer pada lokasi atau kondisi tertentu agar pemrogram dapat memeriksa status sistem saat itu.
  • Eksekusi bertahap (Stepping): Menjalankan kode program secara perlahan baris demi baris atau instruksi demi instruksi (single-stepping) untuk mengamati perubahan kondisi logika algoritme.
  • Inspeksi memori dan register: Menampilkan isi dari variabel, penunjuk memori (pointer), tumpukan panggilan (stack), serta register CPU secara aktual (real-time).
  • Pengubahan nilai dinamis: Mengizinkan pemrogram mengubah isi memori atau variabel di tengah jalannya eksekusi untuk menguji skenario kondisional tertentu tanpa harus mengompilasi ulang program.

Jenis pengawakutu

Berdasarkan tingkat abstraksi dan lingkungan kerjanya, pengawakutu dapat dikelompokkan menjadi:

Pengawakutu tingkat sumber (Source-level debugger)

Pengawakutu yang beroperasi langsung pada kode sumber yang ditulis oleh manusia (seperti bahasa C, C++, Java, atau Python). Alat ini mencocokkan instruksi mesin yang sedang berjalan dengan baris kode aslinya menggunakan simbol pengawakutuan (debugging symbols).

Pengawakutu tingkat mesin (Machine-level debugger)

Pengawakutu yang beroperasi pada instruksi bahasa rakitan (assembly) atau kode mesin tingkat rendah. Jenis ini sering digunakan dalam aktivitas rekayasa balik (reverse engineering) atau ketika kode sumber asli tidak tersedia.

Pengawakutu inti (Kernel debugger)

Pengawakutu khusus yang digunakan untuk menguji inti sistem operasi (kernel). Pengawakutu jenis ini memiliki hak akses tertinggi karena harus mampu menghentikan seluruh sistem operasi untuk memeriksa kegagalan fatal seperti Blue Screen of Death pada Windows atau Kernel panic pada Unix/Linux.

Pengawakutu perangkat keras (Hardware/Embedded debugger)

Perangkat lunak pembantu yang terhubung dengan modul perangkat keras eksternal (seperti antarmuka JTAG atau SWD) untuk melakukan pengawakutuan langsung pada sistem tertanam (embedded systems) dan mikrokontroler secara fisik.

Daftar pengawakutu yang populer

  • GNU Debugger (GDB): Pengawakutu standar untuk ekosistem perangkat lunak bebas yang mendukung banyak bahasa pemrograman dan arsitektur CPU.
  • LLDB: Pengawakutu berkinerja tinggi yang menjadi bagian dari proyek kompilator LLVM dan digunakan secara bawaan pada lingkungan pengembangan macOS dan iOS.
  • Microsoft Visual Studio Debugger: Pengawakutu terintegrasi di dalam IDE Visual Studio untuk pengembangan aplikasi berbasis Windows.
  • WinDbg: Alat pengawakutu multiguna dari Microsoft yang sering digunakan untuk menganalisis berkas crash dump dan melakukan pengawakutuan tingkat *kernel*.
  • Valgrind: Alat pemrograman yang utamanya digunakan untuk mendeteksi kebocoran memori (memory leak) dan memprofilkan memori pada sistem Linux.

Referensi

  • Sanjeev Kumar Aggarwal and M. Sarath Kumar, "Debuggers for Programming Languages". In The Compiler Design Handbook: Optimizations and Machine Code Generation. Edited by Y.N. Srikant and Priti Shankar. Boca Raton, Florida: CRC Press, 2003. pp. 295–327.
  • Jonathan B. Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture, John Wiley & Sons, ISBN 0-471-14966-7.

Lihat pula

Pranala luar

Lihat entri debugger di kamus bebas Wikikamus.
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan