GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menggunakan GDB untuk Debug Program di Ubuntu 20.04

GNU Debugger (GDB) adalah debugger open-source untuk Sistem GNU. Debugger bersifat portabel dan dapat digunakan untuk berbagai bahasa seperti C/C++ dan Fortran. Ini dapat digunakan untuk men-debug program dengan mengamati statusnya pada breakpoint tertentu dan bahkan mengubah aliran atau nilai untuk eksekusi lebih lanjut. Biasanya, GDB berjalan di baris perintah tetapi beberapa GUI juga telah dikembangkan untuk itu.

Dalam artikel ini, kami mengeksplorasi cara men-debug program C menggunakan GDB di Ubuntu 20.04 LTS (Focal Fossa).

Prasyarat

  • Sistem Ubuntu 20.04
  • Pengguna dengan hak sudo untuk mengganti nama banyak file.

Catatan: Perintah yang dibahas dalam artikel ini telah diuji di Ubuntu 20.04 LTS (Fossa Fokus).

Menginstal Paket

Instal paket GN prasyarat untuk kompilasi dan debugging. Jalankan perintah berikut di terminal:

$ sudo apt install gcc gdb -y

Contoh Program-C untuk debugging

Kode

Sebelum dijalankan, sebuah program perlu dikompilasi. Kita akan mengkompilasi kode C berikut di file main.c .

#include <stdio.h>

int main() {

for (int i=0; i<5; ++i) {
printf("Iterator: %d\n", i);
}
return 0;
}

Kompilasi Program C menggunakan GCC

Biasanya, kode C dikompilasi di GCC menggunakan perintah berikut:

$ gcc main.c -o bin

Argumen lain perlu diberikan untuk menyertakan simbol dalam biner. simbol ini digunakan oleh GDB untuk melacak dan men-debug program. Jalankan perintah berikut di terminal untuk mengkompilasi kode C:

$ gcc -g main.c -o bin

File yang dapat dieksekusi bernama bin akan muncul.

Jalankan program pengujian

File biner bernama bin dapat dieksekusi seperti file yang dapat dieksekusi lainnya pada antarmuka baris perintah. Gunakan perintah berikut untuk menjalankannya di terminal:

$ ./bin

Keluaran kode akan muncul.

Men-debug Aplikasi di Linux

Mulai Debugger

Jalankan utilitas GDB menggunakan perintah berikut di terminal:

$ gdb bin

Tekan enter. Konsol untuk terminal GDB akan muncul. Masukkan lari perintah di konsol ini untuk menjalankan executable yang disediakan untuk utilitas sebagai argumen.

(gdb) run

Debug Breakpoints

Tambahkan Breakpoint

Breakpoints dapat ditambahkan dalam beberapa cara. Kami akan menambahkan breakpoint pada printf fungsi dalam kode kita. Jalankan perintah berikut di terminal untuk menambahkan breakpoint:

(gdb) break printf

Atau, nomor baris juga dapat digunakan untuk menambahkan breakpoint.

(gdb) break 6

Masukkan lari perintah dan program akan berhenti di breakpoint.

Langkah Breakpoints

Gunakan perintah lanjutkan untuk melanjutkan eksekusi program.

(gdb) continue

Ada dua perintah lain untuk tujuan yang berbeda untuk melanjutkan eksekusi program:

  • Langkah:langkah-langkah melalui instruksi mesin berikutnya.
  • Selanjutnya:langkah-langkah untuk melewati baris kode berikutnya.

Singkatan dari perintah juga dapat digunakan. Seperti singkatan dari lanjutkan perintahnya adalah c.

(gdb) c

Informasi Tentang Breakpoint

Informasi tentang breakpoint dapat diamati menggunakan info perintah gdb . Jalankan perintah berikut pada terminal:

(gdb) info breakpoints

Informasi tentang breakpoint akan muncul.

Catatan:Angka di sebelah kiri breakpoint digunakan untuk merujuknya dengan perintah lain.

Hapus Breakpoint

Sebuah breakpoint dapat dihapus menggunakan delete perintah dan dengan mengacu pada nomor breakpoint yang diamati pada output info utilitas.

(gdb) delete 1

Sekarang breakpoint telah dihapus dan jika dijalankan, program akan langsung dijalankan sampai akhir.

Variabel Tontonan

Variabel dapat ditonton menggunakan utilitas arloji. Pertama, kita perlu memasukkan ruang lingkup di mana variabel itu ada. Untuk tujuan ini, tambahkan breakpoint terlebih dahulu menggunakan perintah berikut:

(gdb) break 6

Kemudian jalankan kode yang mencapai breakpoint ini.

(gdb) r

Sekarang kita berada di loop di mana variabel i ada.

Jam tangan perintah akan digunakan untuk mengamati nilai sebelumnya dan baru dari variabel i dalam lingkaran.

(gdb) watch i

Sekarang breakpoint dihasilkan oleh watch perintah akan muncul dalam daftar breakpoints juga. Daftar breakpoint dapat ditampilkan dengan menggunakan perintah berikut:

(gdb) info breakpoints

Selain itu, kita tidak perlu memasukkan breakpoint sebelumnya. Itu dapat dengan mudah dihapus menggunakan perintah berikut:

(gdb) delete 1

Sekarang jika dilanjutkan, kode akan melihat nilai setiap kali variabel telah mengubah nilainya dan menampilkan nilai lama dan baru.

(gdb) c

Iterasi lebih lanjut dari program dapat diamati juga, menggunakan perintah yang sama.

Keluar dari Debugger

Jalankan perintah berikut di terminal untuk keluar dari debugger.

(gdb) quit

gdb close tutup ini utilitas dan prompt baris perintah default akan muncul.

Kesimpulan

Pada artikel ini, kami menjelajahi cara menjalankan dan menghancurkan program di GDB. Selain itu, ia juga dikonfigurasi untuk memecah dirinya sendiri ketika nilai variabel telah berubah. Kami harap Anda dapat dengan mudah men-debug program Anda di GDB setelah mengikuti artikel ini.


Ubuntu
  1. Cara Menggunakan Perintah Shutdown Linux di Ubuntu 18.04 dan CentOS 7

  2. Cara Menggunakan Perintah Uptime Di Ubuntu Linux

  3. Cara menggunakan perintah ekor di Ubuntu Linux

  1. Cara menggunakan perintah string di Ubuntu

  2. Cara menggunakan perintah netplan di Ubuntu

  3. Cara menggunakan ssh-keyscan di Ubuntu

  1. Cara Menggunakan Perintah vmstat

  2. Cara men-debug program C di Linux menggunakan gdb

  3. Cara menggunakan ssh-agent di Ubuntu