Cara menginstal gdb di rhel 8
- 3357
- 1019
- Simon Cormier
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
Persyaratan dan konvensi perangkat lunak yang digunakan
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).
GDB
adalah bagian dariAlat 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
- 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 diprintf
baris, tetapi tidak akan menyebutkanSaya
DanJ
, seperti yang diharapkan.$ ./vars variabel mengatur nilai variabel yang dimodifikasi
- Kita perlu mengetahui nilai -nilai
Saya
DanJ
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 mengujiGDB
. Kami memulainya dengan yang dikompilasivars
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. Ituvars
Program tidak dimulai pada saat ini. Kami memeriksa catatan kami, dan mengatur aBreakpoint
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…