Kuidas installida GDB süsteemi CentOS 6

GDB on siluja C, C++, Objective-C, Pascali, Fortrani, Go, D, OpenCL C, Ada ja Modula-2 jaoks.

CentOS põhineb RHEL-il (Red Hat Enterprise Linux). RHELi üks peamisi eesmärke on olla stabiilne serveri operatsioonisüsteem, mis tähendab, et tarkvarapakettide uuemad versioonid pole alati saadaval.

Kirjutamise ajal pakub CentOS 6 GDB versiooni 7.2. GDB meeskond avaldas aga hiljuti koodi versioonile 7.91.

GDB uuema versiooni kasutamiseks on ametlikult soovitatav käivitada mõni muu Linuxi distributsioon. See ei ole alati ideaalne. Õnneks on CentOS 6-le võimalik installida GDB uuemad versioonid. Kuna GDB on pigem silur kui süsteemi põhikomponent, on uuema versiooni kasutamine üsna turvaline.

See artikkel selgitab, kuidas installida CentOS 6 nii toetatud kui ka toetamata GDB versioone.

Samuti selgitan, kuidas seadistada GDB-d, et anda teile hõlpsamini loetav silumisteave C++ standardteegi (nagu string) ja standardmalliteegi (nagu vektor) kasutamisel. Seda funktsiooni nimetatakse ilusaks printimiseks.

Logige oma VPS-i sisse ja seadistage oma kasutajakonto

  1. Logige sisse oma VPS-i. Seda saab teha, klõpsates Vultri juhtpaneelil nuppu "View Console" või SSH-kliendiga.

    (a) Logige sisse administraatorina.

    (b) Looge oma kasutajakonto. Seadke parool.

    adduser <username>
    passwd <username>
    

    (c) Andke kasutajale sudo juurdepääs.

    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) Logige välja administraatorina, seejärel logige oma kasutajakontoga uuesti sisse. Palju turvalisem on mitte kunagi tegelikult root kasutajana sisse logida. Sudo kasutamine on parem tava.

Kui soovite installida ametlikult toetatud (vanemat) GDB versiooni

  1. Installige GDB.

    sudo yum install gdb
    
  2. Kontrollige installitud versiooni ja vaadake selle asukohta.

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

Kui soovite installida allikast GDB uuema versiooni

  1. Installige C-kompilaator, näiteks GCC. C++ kompilaatorit ei ole vaja GDB allikast koostamiseks, kuid seda on vaja GDB ilusa printimisfunktsiooni demonstreerimiseks. Saate luua allikast GCC uuema versiooni, järgides artiklis GCC installimine CentOS 6- sse toodud samme . Või saate installida CentOS 6 ametlikult toetatud GCC versiooni, käivitades:

    sudo yum install gcc gcc-c++
    
  2. Installige täiendavalt vajalikud paketid.

    sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
    
  3. Otsustage, millist GDB versiooni soovite allikast luua. Allalaadimiseks saadaolevate versioonide vaatamiseks külastage GDB FTP saiti .

  4. Hankige soovitud GDB versiooni allikas. Ülejäänud osa sellest artiklist on kirjutatud versioonile 7.9.1 ja see laadib allikad alla ~/sourceInstallations/gdb-7.9.1/– uuemate versioonide vastu peate asendama õige versiooninumbri.

    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. Ehitage GDB. Kui see on õigesti lõpetatud, on viimasel real, mida näete, "edu". On normaalne, et mõned veanäitajad kiiresti mööda kerivad. Neid on ohutu ignoreerida.

    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. Installige C++ ilus printimine.

    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. Kontrollige installitud versiooni ja selle asukohta.

    gdb --version
        May say: GNU gdb (GDB) 7.9.1
    which gdb
        /usr/local/bin/gdb
    
  8. Soovi korral käivitage GDB ja vaadake ilusat printimist.

    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. Soovi korral saate kõvakettaruumi tagasi võtta. Teie ~/sourceInstallationskataloog võtab enda alla umbes 386 MB. Tõenäoliselt on mõistlik kataloogid alles jätta, kuna on valikulisi seadistusvõimalusi, mida võib tekkida vajadus tulevikus kasutada, ja kiirem oleks, kui palju on juba tehtud. Samuti loob ehitusprotsess logisid, mida saate hiljem kontrollida ja kasutada, kui midagi läheb valesti. Kuid pärast sudo make installvarasemat käivitamist ei sõltu teie installitud GDB mitte millestki selles kataloogis ja ruumi võib olla liiga palju, nii et saate seda sammu teha ja umbes 386 MB tagasi nõuda. TÄHTIS: ärge kustutage ~/gdb_printers/kataloogi! Selle kataloogi sisu laaditakse iga kord, kui käivitate GDB. Neid EI kompileeritud GDB-sse endasse.

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

Jäta kommentaar

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit