Cara menginstal gdb di rhel 8

Cara menginstal gdb di rhel 8

GDB atau Debugger Proyek GNU adalah alat yang hebat saat Anda perlu men -debug program. Anda dapat mengatur breakpoint, menonton untuk perubahan nilai variabel, atau bahkan mengubah nilai untuk program saat dihentikan pada titik status itu, lalu lanjutkan, hanya untuk memilih beberapa fitur GDB.

Dalam tutorial ini kami akan menginstal GDB di RHEL 8, dan menguji cara kerjanya dengan aplikasi C sederhana.

Dalam tutorial ini Anda akan belajar:

  • Cara menginstal GDB
  • Cara mengkompilasi aplikasi C sederhana dengan simbol debug
  • Cara mengatur breakpoint di aplikasi berjalan dengan gdb
  • Cara mencetak nilai aktual dari variabel yang diberikan dalam aplikasi
Melangkah palung untuk loop dengan gdb.

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Red Hat Enterprise Linux 8
Perangkat lunak GDB 8.2
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Cara menginstal GDB di RedHat Linux 8 Instruksi Langkah demi Langkah



Untuk tutorial ini, kami akan menggunakan aplikasi C sederhana yang menetapkan beberapa variabel, mencetak beberapa teks, dan mengubah nilai variabelnya nanti. Itu dibangun hanya untuk menunjukkan beberapa fitur GDB, dan tidak memiliki penggunaan dunia nyata.

Jika Anda tidak terbiasa dengan bahasa pemrograman C, Anda dapat memeriksa pengembangan C di Linux Pendahuluan untuk membantu Anda memulai. Untuk saat ini pertimbangkan kode sumber berikut, yang akan kami masukkan ke vars.C File Teks:

#include int main () int i = 1; int j = 10; printf ("Variabel Set \ n)"; i ++; j = 20; printf ("Nilai Variabel Modifikasi \ n"); kembali 0; 
Menyalin

Kami akan menggunakan program sederhana ini untuk menguji GDB. Anda mungkin memperhatikan dari kode bahwa variabel nilai Saya Dan J Take tidak akan pernah terekspos di bawah menjalankan program normal, jadi kami tidak akan tahu apa nilai mereka di mana, dan kapan. Dalam hal ini adalah pemborosan memori yang sederhana, tetapi pikirkan tentang kasus penggunaan di mana Saya akan memiliki sesuatu yang penting, mungkin kata sandi yang dikodekan dengan kode, kode cheat atau harta karun lainnya (atau tidak dapat menemukan di mana perhitungan program Anda salah).

  1. GDB adalah bagian dari Alat pengembangan grup paket, jadi jika Anda telah menginstal alat pengembangan, Anda sudah memiliki GDB. Jika tidak, Anda dapat menginstalnya dengan sendirinya:
    # DNF Instal GDB

    Kami juga membutuhkan debuginfo untuk GLIBC untuk pengujian kami:

    # DNF Debuginfo-Install GLIBC-2.28-18.EL8.x86_64


  2. Kami mendapatkan alat debugger, dan kami mendapatkan kode sumber. Agar debugging bermanfaat, kita perlu menyusun program kita dengan simbol debug (kita menambahkan -G pilihan):
    $ gcc -g -o vars vars.C

    Jika kami menjalankan kami vars program, itu akan menghasilkan string di printf baris, tetapi tidak akan menyebutkan Saya Dan J, seperti yang diharapkan.

    $ ./vars variabel mengatur nilai variabel yang dimodifikasi
  3. Kita perlu mengetahui nilai -nilai Saya Dan J ketika mereka di mana pertama kali diatur, dan sebelum program keluar. Pertimbangkan baris #7 dan #10 ( printf baris) di sumbernya. Akan sangat ideal jika kita bisa menghentikan eksekusi di baris -baris itu, mendapatkan nilainya, lalu biarkan program lepas lagi, dll. Kami pasti melakukan ini untuk menguji GDB. Kami memulainya dengan yang dikompilasi vars dapat dieksekusi sebagai argumen:
    $ GDB VARS GNU GDB (GDB) Red Hat Enterprise Linux 8.2-3.EL8 Hak Cipta (C) 2018 Free Software Foundation, Inc. Lisensi GPLV3+: GNU GPL versi 3 atau lebih baru ini adalah perangkat lunak gratis: Anda bebas untuk mengubah dan mendistribusikannya kembali. Tidak ada jaminan, sejauh diizinkan oleh hukum. Ketik "Tampilkan Salinan" dan "Tampilkan Garansi" untuk detailnya. GDB ini dikonfigurasi sebagai "x86_64-redhat-linux-gnu". Ketik "Tampilkan Konfigurasi" untuk detail konfigurasi. Untuk instruksi pelaporan bug, silakan lihat: . Temukan manual GDB dan sumber daya dokumentasi lainnya secara online di: . Untuk bantuan, ketik "bantuan". Ketik "Words Word" untuk mencari perintah yang terkait dengan "Word" ... Membaca Simbol dari VAR ... selesai. (GDB)

    GDB membaca simbol dalam program ini, dan memberi kita prompt untuk bertindak. Itu vars Program tidak dimulai pada saat ini. Kami memeriksa catatan kami, dan mengatur a Breakpoint di baris #7:

    (GDB) Break 7 Breakpoint 1 di 0x40059c: file vars.C, baris 7.

    Dan baris #10:

    (GDB) istirahat 10 Breakpoint 2 at 0x4005b1: file vars.C, baris 10.

    Dengan set breakpoints, kami memulai eksekusi:

    (GDB) berlari Program Mulai:/tmp/devel/vars breakpoint 1, main () di vars.C: 7 7 printf ("Variabel Set \ n");

    Eksekusi berhenti di breakpoint pertama, dan kita dapat mencetak nilai variabel tersembunyi:

    (GDB) Cetak i $ 1 = 1 (GDB) Cetak j $ 2 = 10

    Kami mendapat bagian pertama dari informasi yang diperlukan, mari kita lanjutkan eksekusi:

    (GDB) melanjutkan Berlanjut. Variabel Set Breakpoint 2, Main () di VARS.C: 10 10 printf ("Nilai Variabel Modifikasi \ n");

    Kita dapat mencetak nilai dengan cara yang sama di breakpoint berikutnya:

    (GDB) Cetak I $ 3 = 2 (GDB) Cetak J $ 4 = 20

    Kami mendapatkan semua yang kami butuhkan. Tidak ada lagi breakpoint yang tersisa, jadi aplikasi akan keluar secara normal setelah mencetak baris teks terakhir.

    (GDB) Terus melanjutkan. Nilai Variabel Modifikasi [Inferior 1 (Proses 2330) Keluar Normal] (GDB) Q

    Kami mendapatkan nilai -nilai variabel rahasia, dan menguji kami GDB sama bermanfaatnya dengan yang dimaksudkan.

Tutorial Linux Terkait:

  • Tutorial debugging GDB untuk pemula
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 22.04 Jammy Jellyfish…
  • Instal Arch Linux di VMware Workstation
  • Ubuntu 20.04 Panduan
  • Cara Dual Boot Kali Linux dan Windows 10
  • Sistem Linux Hung? Cara melarikan diri ke baris perintah dan…
  • Cara menggunakan ADB Android Debug Bridge untuk mengelola Android Anda…