So installieren Sie GDB in RHEL 8

So installieren Sie GDB in RHEL 8

GDB oder GNU -Projektdebugger ist ein großartiges Tool, wenn Sie ein Programm debuggen müssen. Sie können Haltepunkte festlegen, auf die Wertänderung einer Variablen beobachten oder sogar einen Wert für das Programm ändern, während es an einem Punkt des Zustands gestoppt wird, und dann weiterzumachen, um einige der Funktionen von GDB auszuwählen.

In diesem Tutorial installieren wir GDB auf RHEL 8 und testen, wie es mit einer einfachen C -Anwendung arbeitet.

In diesem Tutorial lernen Sie:

  • So installieren Sie GDB
  • So kompilieren Sie eine einfache C -Anwendung mit Debug -Symbolen
  • So setzen Sie Bruchpunkte in der laufenden Anwendung mit GDB
  • So drucken Sie die tatsächlichen Werte angegebener Variablen innerhalb der Anwendung
Tretenstufe für Schleife mit GDB.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Red Hat Enterprise Linux 8
Software GDB 8.2
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

So installieren Sie GDB in Redhat Linux 8 Schritt für Schritt Anweisungen



Für dieses Tutorial verwenden wir eine einfache C -Anwendung, die einige Variablen festlegt, einen Text ausdrucken und die Werte seiner Variablen später ändern. Es ist nur so gebaut, um einige Merkmale von zu zeigen GDB, und hat keine reale Weltgebrauch.

Wenn Sie mit der C -Programmiersprache nicht vertraut sind, können Sie sich die C -Entwicklung unter Linux -Einführung ansehen, um Ihnen den Einstieg zu erleichtern. Betrachten Sie vorerst den folgenden Quellcode, den wir in die einsetzen werden vars.C Textdatei:

#include int main () int i = 1; int j = 10; printf ("Variablen set \ n)"; i ++; J = 20; printf ("Variablenwerte modifiziert \ n"); Rückkehr 0; 
Kopieren

Wir werden dieses einfache Programm zum Testen verwenden GDB. Sie können aus dem Code feststellen, dass die Werte variablen ich Und J Take wird niemals im Rahmen des Programms des Programms ausgesetzt, daher werden wir nicht wissen, welche Werte wo und wann. In diesem Fall ist es eine einfache Speicherverschwendung, aber denken Sie an einen Anwendungsfall, wo ich Würde etwas Wichtiges halten, vielleicht ein hartcodiertes Passwort, ein Cheat-Code oder einen anderen Schatz (oder einfach nicht finden, wo die Berechnungen Ihres Programms schief gehen).

  1. GDB ist Teil von Entwicklungswerkzeuge Packungsgruppe. Wenn Sie also Entwicklungstools installiert haben, haben Sie bereits GDB. Wenn nicht, können Sie es selbst installieren:
    # DNF Installieren Sie GDB

    Wir werden auch Debuginfo für GLIBC für unsere Tests benötigen:

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


  2. Wir haben das Debugger -Tool erhalten und wir haben den Quellcode bekommen. Damit das Debugging nützlich ist, müssen wir unser Programm mit Debug -Symbolen zusammenstellen (wir fügen das hinzu -G Möglichkeit):
    $ gcc -g -o vars vars.C

    Wenn wir unsere laufen lassen vars Programm gibt die Zeichenfolgen in der Ausgabe printf Zeilen, werden aber nicht erwähnen ich Und J, wie erwartet.

    $ ./vars variablen setzen variable Werte geändert
  3. Wir müssen die Werte von wissen ich Und J Wenn sie zum ersten Mal gesetzt und vor dem Programm beendet wurden. Betrachten Sie die Zeilen Nr. 7 und Nr. 10 (die printf Zeilen) in der Quelle. Es wäre ideal, wenn wir die Ausführung in diesen Zeilen stoppen, die Werte abrufen, dann das Programm wieder loslassen usw. Wir werden das genau tun, um zu testen GDB. Wir beginnen es mit dem zusammengestellten vars Ausführbare Datei als Argument:
    $ GDB VARS GNU GDB (GDB) Red Hat Enterprise Linux 8.2-3.EL8 Copyright (C) 2018 Free Software Foundation, Inc. Lizenz GPLV3+: GNU GPL Version 3 oder später ist diese kostenlose Software: Sie können es kostenlos ändern und neu verteilt. Es gibt keine Garantie, sofern dies gesetzlich zulässig ist. Geben Sie "Copying" und "Garantie" für Details ein. Dieses GDB wurde als "x86_64-redhat-linux-gnu" konfiguriert. Geben Sie "Konfiguration anzeigen" für Konfigurationsdetails ein. Für Anweisungen zur Fehlerberichterstattung finden Sie unter: . Finden Sie das GDB -Handbuch und andere Dokumentationsressourcen online unter: . Für Hilfe, geben Sie "Hilfe" ein. Geben Sie "APROPOS Word" ein, um nach Befehlen zu suchen, die sich mit "Wort" beziehen ... Symbole aus Vars lesen ... erledigt. (GDB)

    GDB liest die Symbole im Programm und gibt uns die Aufforderung zum Handeln. Der vars Das Programm wird an dieser Stelle nicht gestartet. Wir überprüfen unsere Notizen und setzen a Haltepunkt in Zeile Nr. 7:

    (GDB) Break 7 Breakpoint 1 bei 0x40059c: Datei -Vars.C, Zeile 7.

    Und Zeile Nr. 10:

    (GDB) Break 10 Breakpoint 2 bei 0x4005b1: Datei -Vars.C, Zeile 10.

    Mit den festgelegten Haltepunkten starten wir die Ausführung:

    (GDB) laufen Startprogramm:/TMP/Devel/VARS Breakpoint 1, Main () bei VARs.C: 7 7 printf ("Variablen set \ n");

    Die Ausführung stoppt am ersten Haltepunkt, und wir können die Werte der verborgenen Variablen drucken:

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

    Wir haben den ersten Teil der benötigten Informationen erhalten. Lassen Sie uns die Ausführung fortsetzen:

    (GDB) weitermachen Auch weiterhin. Variablen setzen Breakpoint 2, Main () bei VARs.C: 10 10 printf ("Variable Werte modifiziert \ n");

    Wir können die Werte am nächsten Haltepunkt auf die gleiche Weise drucken:

    (GDB) Drucken i $ 3 = 2 (GDB) Drucken j $ 4 = 20

    Wir haben alles, was wir brauchten. Es sind keine Breakpoints mehr übrig, sodass die Anwendung nach dem Drucken der letzten Textzeile normal beendet wird.

    (GDB) Weiter geht es weiter. Variable Werte geändert [minderwertig 1 (Prozess 2330), das normal ausging] (GDB) q

    Wir haben die Werte der geheimen Variablen erhalten und das getestet, dass unsere GDB ist so nützlich wie es sein soll.

Verwandte Linux -Tutorials:

  • GDB -Debugging -Tutorial für Anfänger
  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu installieren auf Ubuntu 22.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
  • Installieren Sie Arch Linux in VMware Workstation
  • Ubuntu 20.04 Leitfaden
  • Wie man Kali Linux und Windows 10 Dual -Boot -Start hat
  • Hung Linux System? Wie man zur Befehlszeile entkommt und…
  • So verwenden Sie ADB Android Debugg Bridge, um Ihr Android zu verwalten…