Cara memasang GDB dalam RHEL 8
- 3090
- 49
- Daryl Wilderman
GDB atau GNU Project Debugger adalah alat yang hebat apabila anda perlu debug program. Anda boleh menetapkan titik putus, menonton perubahan nilai pembolehubah, atau bahkan menukar nilai untuk program semasa ia dihentikan pada titik keadaannya, kemudian teruskan, hanya untuk memilih beberapa ciri GDB.
Dalam tutorial ini, kami akan memasang GDB di RHEL 8, dan menguji bagaimana ia berfungsi dengan aplikasi C yang mudah.
Dalam tutorial ini anda akan belajar:
- Cara memasang gdb
- Cara Menyusun Aplikasi C Ringkas Dengan Simbol Debug
- Cara menetapkan titik putus dalam aplikasi berjalan dengan GDB
- Cara mencetak nilai sebenar pembolehubah yang diberikan dalam aplikasi
Keperluan perisian dan konvensyen yang digunakan
Kategori | Keperluan, konvensyen atau versi perisian yang digunakan |
---|---|
Sistem | Red Hat Enterprise Linux 8 |
Perisian | GDB 8.2 |
Yang lain | Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah. |
Konvensyen | # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak |
Cara Memasang GDB di Redhat Linux 8 Langkah demi Langkah Arahan
Untuk tutorial ini, kami akan menggunakan aplikasi C yang mudah yang menetapkan beberapa pembolehubah, mencetak beberapa teks, dan menukar nilai pembolehubah itu kemudian. Ia dibina hanya untuk menunjukkan beberapa ciri GDB
, dan tidak mempunyai penggunaan dunia sebenar.
Sekiranya anda tidak biasa dengan bahasa pengaturcaraan C, anda boleh menyemak perkembangan C pada Pengenalan Linux untuk memulakan anda. Buat masa ini mempertimbangkan kod sumber berikut, bahawa kami akan dimasukkan ke dalam vars.c
fail teks:
#include int main () int i = 1; int j = 10; printf ("pembolehubah set \ n)"; i ++; J = 20; printf ("Nilai berubah -ubah diubah suai \ n"); kembali 0;
Salinan Kami akan menggunakan program mudah ini untuk diuji GDB
. Anda mungkin perasan dari kod bahawa pemboleh ubah nilai i
dan j
ambil tidak akan pernah didedahkan di bawah program normal, jadi kami tidak akan tahu apa nilai mereka di mana, dan bila. Dalam kes ini, ia adalah pembaziran memori yang mudah, tetapi fikirkan tentang kes penggunaan di mana i
akan memegang sesuatu yang penting, mungkin kata laluan yang dikodkan keras, kod cheat atau harta karun lain (atau hanya tidak dapat mencari di mana pengiraan program anda salah).
GDB
adalah sebahagian daripadaAlat pembangunan
kumpulan pakej, jadi jika anda memasang alat pembangunan, anda sudah mempunyai GDB. Jika tidak, anda boleh memasangnya dengan sendirinya:# DNF Pasang GDB
Kami juga memerlukan DebugInfo untuk GLIBC untuk ujian kami:
# DNF Debuginfo-memasang GLIBC-2.28-18.EL8.x86_64
- Kami mendapat alat debugger, dan kami mendapat kod sumber. Untuk debugging berguna, kita perlu menyusun program kami dengan simbol debug (kami menambah
-g
pilihan):$ gcc -g -o var vars.c
Sekiranya kita menjalankan kita
vars
program, ia akan mengeluarkan rentetan diprintf
garis, tetapi tidak akan menyebuti
danj
, seperti yang diharapkan.$ ./VARS VARSED TETAP
- Kita perlu mengetahui nilai -nilai
i
danj
Apabila mereka di mana ditetapkan pertama, dan sebelum program keluar. Pertimbangkan garis #7 dan #10 (Theprintf
garis) di sumber. Ia akan menjadi ideal jika kita dapat menghentikan pelaksanaan pada baris tersebut, dapatkan nilai -nilai, maka biarkan program itu longgar lagi, dll. Kami akan melakukan ini untuk mengujiGDB
. Kami memulakannya dengan disusunvars
boleh dilaksanakan sebagai hujah:$ gdb vars gnu gdb (gdb) red hat perusahaan linux 8.2-3.EL8 Hak Cipta (c) 2018 Yayasan Perisian Percuma, INC. Lesen GPLV3+: GNU GPL Versi 3 atau lebih baru ini adalah perisian percuma: anda bebas menukar dan mengagihkan semula. Tidak ada jaminan, setakat yang dibenarkan oleh undang -undang. Taip "Tunjukkan Penyalinan" dan "Tunjukkan Waranti" untuk maklumat lanjut. GDB ini dikonfigurasikan sebagai "x86_64-redhat-linux-gnu". Taipkan "Tunjukkan Konfigurasi" untuk perincian konfigurasi. Untuk arahan pelaporan pepijat, sila lihat: . Cari manual GDB dan sumber dokumentasi lain dalam talian di: . Untuk bantuan, taipkan "Bantuan". Taipkan "perkataan apropos" untuk mencari arahan yang berkaitan dengan "perkataan" ... simbol membaca dari var ... selesai. (GDB)
GDB
Membaca simbol dalam program ini, dan memberi kita petugas untuk bertindak. Thevars
program tidak bermula pada ketika ini. Kami periksa nota kami, dan tetapkan atitik putus
di baris #7:(GDB) Break 7 Breakpoint 1 di 0x40059c: Fail Vars.c, baris 7.
Dan baris #10:
(GDB) rehat 10 Breakpoint 2 di 0x4005B1: Fail Vars.c, baris 10.
Dengan titik putus, kami memulakan pelaksanaan:
(GDB) Jalankan Program Permulaan:/TMP/DEVEL/VARS Breakpoint 1, Utama () di VARS.c: 7 7 printf ("pembolehubah set \ n");
Pelaksanaan berhenti di titik putus pertama, dan kita boleh mencetak nilai pembolehubah tersembunyi:
(GDB) Cetak i $ 1 = 1 (GDB) cetak j $ 2 = 10
Kami mendapat bahagian pertama maklumat yang diperlukan, mari meneruskan pelaksanaan:
(GDB) Teruskan Berterusan. Pemboleh ubah menetapkan Breakpoint 2, Utama () di VARS.c: 10 10 printf ("Nilai berubah -ubah diubah suai \ n");
Kita boleh mencetak nilai dengan cara yang sama pada titik putus seterusnya:
(GDB) Cetak I $ 3 = 2 (GDB) Cetak J $ 4 = 20
Kami mendapat semua yang kami perlukan. Tidak ada lagi titik putus yang tersisa, jadi aplikasi akan keluar secara normal setelah mencetak baris terakhir teks.
(GDB) Teruskan meneruskan. Nilai berubah -ubah diubah suai [inferior 1 (proses 2330) keluar secara normal] (gdb) q
Kami mendapat nilai pembolehubah rahsia, dan menguji bahawa kami
GDB
sama berguna seperti yang dimaksudkan.
Tutorial Linux Berkaitan:
- Tutorial Debugging GDB untuk Pemula
- Perkara yang hendak dipasang di Ubuntu 20.04
- Perkara yang perlu dipasang di Ubuntu 22.04
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
- Pasang Arch Linux di Workstation VMware
- Ubuntu 20.04 Panduan
- Cara Dual Boot Kali Linux dan Windows 10
- Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
- Cara Menggunakan Adb Android Debug Bridge untuk Mengurus Android Anda ..