So installieren Sie GDB unter CentOS 6

GDB ist ein Debugger für C, C ++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada und Modula-2.

CentOS basiert auf RHEL (Red Hat Enterprise Linux). Eines der Hauptziele von RHEL ist es, ein stabiles Server-Betriebssystem zu sein, was bedeutet, dass neuere Versionen von Softwarepaketen nicht immer verfügbar sind.

Zum Zeitpunkt des Schreibens bietet CentOS 6 GDB v7.2 an. Das GDB-Team hat jedoch kürzlich Code für Version 7.91 veröffentlicht.

Es wird offiziell empfohlen, eine andere Linux-Distribution auszuführen, um eine neuere Version von GDB zu verwenden. Das ist nicht immer ideal. Glücklicherweise ist es möglich, die neueren Versionen von GDB unter CentOS 6 zu installieren. Da GDB eher ein Debugger als eine Systemkernkomponente ist, können Sie eine neuere Version ziemlich sicher verwenden.

In diesem Artikel wird erläutert, wie Sie unterstützte und nicht unterstützte Versionen von GDB unter CentOS 6 installieren.

Ich werde auch erklären, wie Sie GDB so einrichten, dass Sie bei Verwendung der C ++ - Standardbibliothek (wie Zeichenfolge) und der Standardvorlagenbibliothek (wie Vektor) leichter lesbare Debugging-Informationen erhalten. Diese Funktion wird als hübsches Drucken bezeichnet.

Melden Sie sich bei Ihrem VPS an und richten Sie Ihr Benutzerkonto ein

  1. Melden Sie sich bei Ihrem VPS an. Dies kann durch Klicken auf "Konsole anzeigen" in der Vultr-Systemsteuerung oder mit einem SSH-Client erfolgen.

    (a) Melden Sie sich als root an.

    (b) Erstellen Sie Ihr eigenes Benutzerkonto. Legen Sie das Passwort fest.

    adduser <username>
    passwd <username>
    

    (c) Gewähren Sie dem Benutzer sudo Zugriff.

    visudo
        After the line "root   ALL=(ALL)   ALL"
        Add the line "<username>   ALL=(ALL)   ALL"
        --- If you aren't familiar with vi, go to the line "root   ALL=(ALL)   ALL".
        ---   Hit "o" to create a new line after that line and enter insert mode.
        ---   Type "<username>   ALL=(ALL)   ALL".
        ---   Hit ESC.
        ---   Type "ZZ" to save.
    

    (d) Melden Sie sich als root ab und dann wieder mit Ihrem Benutzerkonto an. Es ist viel sicherer, sich niemals als Root anzumelden. Die Verwendung von Sudo ist eine bessere Praxis.

Wenn Sie die offiziell unterstützte (ältere) Version von GDB installieren möchten

  1. Installieren Sie GDB.

    sudo yum install gdb
    
  2. Überprüfen Sie die installierte Version und sehen Sie sich den Speicherort an.

    gdb --version
        May say: GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)
    which gdb
        /usr/bin/gdb
    

Wenn Sie eine neuere Version von GDB aus dem Quellcode installieren möchten

  1. Installieren Sie einen C-Compiler wie GCC. Ein C ++ - Compiler wird nicht benötigt, um GDB aus dem Quellcode zu erstellen, sondern um die hübsche Druckfunktion von GDB zu demonstrieren. Sie können eine neuere Version von GCC aus dem Quellcode erstellen, indem Sie die Schritte im Artikel Installieren von GCC unter CentOS 6 ausführen . Sie können die offiziell unterstützte CentOS 6-Version von GCC auch installieren, indem Sie Folgendes ausführen:

    sudo yum install gcc gcc-c++
    
  2. Installieren Sie zusätzlich erforderliche Pakete.

    sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
    
  3. Entscheiden Sie, welche Version von GDB Sie aus dem Quellcode erstellen möchten. Besuchen Sie die GDB-FTP-Site , um die zum Herunterladen verfügbaren Versionen anzuzeigen.

  4. Holen Sie sich die Quelle der gewünschten Version von GDB. Der Rest dieses Artikels ist für Version 7.9.1 geschrieben und lädt die Quellen herunter in ~/sourceInstallations/gdb-7.9.1/- Sie müssen neuere Versionen durch die richtige Versionsnummer ersetzen.

    mkdir ~/sourceInstallations
    cd ~/sourceInstallations
    wget ftp://ftp.gnu.org/gnu/gdb/gdb-7.9.1.tar.gz .
    tar -zxvf gdb-7.9.1.tar.gz
    
  5. Erstellen Sie GDB. Wenn dies korrekt abgeschlossen ist, wird in der letzten Zeile "Erfolg" angezeigt. Es ist normal, dass einige fehlerhafte Meldungen schnell vorbeirollen. Diese können sicher ignoriert werden.

    mkdir gdb-7.9.1.build
    cd gdb-7.9.1.build
    ../gdb-7.9.1/configure --with-python=yes && make && sudo make install && echo success
        --- If your VPS has multiple cores, you can speed up the build by changing the middle part
        ---  of this line from "&& make &&" to "&& make -j <number of cores> &&".
        --- You can see the number of cores your VPS has by running "nproc"
        --- The parameter "--with-python=yes" is necessary for the pretty printing feature
    
  6. Installieren Sie C ++ Pretty Printing.

    cd ~/
    svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python gdb_printers
    Create a file ~/.gdbinit of:
        python
        import sys
        sys.path.insert(0, '/home/<yourUserName>/gdb_printers/')
        from libstdcxx.v6.printers import register_libstdcxx_printers
        end
    --- One way to create this file is to run "vi ~/.gdbinit", hitting "i" to enter insert mode,
    ---  typing the above file, hitting ESC, and hitting "ZZ" to save.
    
  7. Überprüfen Sie die installierte Version und ihren Speicherort.

    gdb --version
        May say: GNU gdb (GDB) 7.9.1
    which gdb
        /usr/local/bin/gdb
    
  8. Führen Sie optional GDB aus und sehen Sie hübsches Drucken.

    mkdir ~/gdbExample
    cd ~/gdbExample
    Create a file gdbExample.cpp of:
        #include <string>
        #include <vector>
        using namespace std;
    
        int main() {
           string foo = "bar";
           vector<string> vec;
           vec.push_back("foo");
           vec.push_back("bar");
           vec.push_back("foobar");
        }
    --- One way to create this file is to run "vi gdbExample.cpp", hitting "i" to enter insert mode,
    ---  typing the above file, hitting ESC, and hitting "ZZ" to save.
    g++ -ggdb gdbExample.cpp -o gdbExample
    Start GDB traditionally, by running "gdb ./gdbExample".  Or, start GDB by using its terminal user interface (basically a text mode GUI), by running "gdb --tui ./gdbExample".
    Enter "break main" to set a breakpoint at the beginning of function main() -- and it will say:
        Breakpoint 1 at 0x<someAddress>: file gdbExample.cpp, line 6.
    Enter "run" to start the program, which will immediately hit the breakpoint you just set -- and it will say:
        Starting program: /home/<yourUserName>/gdbExample/gdbExample
    
        Breakpoint 1, main () at gdbExample.cpp:6
        6          string foo = "bar";
    Enter "next" and hit enter four times, and gdb will move up to just before executing:
        10         vec.push_back("foobar"); 
    Enter "print foo" and gdb will show:
        $1 = "bar"
    Enter "print vec" and gdb will show:
        $2 = std::vector of length 2, capacity 2 = {"foo", "bar"}
        --- Remember, line 10 hasn't executed yet to add "foobar" to the vector
    Enter "quit" and "y" to quit anyway.
    
  9. Optional können Sie Festplattenspeicher zurückfordern. Ihr ~/sourceInstallationsVerzeichnis nimmt ungefähr 386 MB ein. Es ist wahrscheinlich ratsam, die Verzeichnisse beizubehalten, da es optionale Konfigurationsoptionen gibt, die Sie möglicherweise zu einem späteren Zeitpunkt verwenden müssen, und es wäre schneller, wenn bereits viel getan worden wäre. Außerdem erstellt der Erstellungsprozess Protokolle, die Sie später überprüfen und bearbeiten können, wenn etwas schief geht. Nach einer sudo make installfrüheren Ausführung hängt Ihre installierte GDB jedoch nicht von irgendetwas in diesem Verzeichnis ab, und der Speicherplatz kann knapp sein. Sie können diesen Schritt also ausführen und die 386 MB oder so zurückfordern. WICHTIG:~/gdb_printers/ Verzeichnis nicht löschen ! Der Inhalt dieses Verzeichnisses wird jedes Mal geladen, wenn Sie GDB ausführen. Sie wurden NICHT in GDB selbst kompiliert.

    cd ~/
    rm -rf sourceInstallations
    --- Again, if you can spare the space, you may someday be happy to have left it there.
    

Einen Kommentar hinterlassen

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.