CentOS 6 Üzerinde GDB Kurulumu

GDB, C, C ++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada ve Modula-2 için bir hata ayıklayıcıdır.

CentOS, RHEL'e (Red Hat Enterprise Linux) dayanmaktadır. RHEL'in ana hedeflerinden biri, kararlı bir sunucu işletim sistemi olmaktır, yani yazılım paketlerinin daha yeni sürümleri her zaman mevcut değildir.

Yazma sırasında, CentOS 6 GDB v7.2'yi sunar. Ancak GDB ekibi yakın zamanda v7.91 için kod yayınladı.

GDB'nin daha yeni bir sürümünü kullanmak için resmi olarak farklı bir Linux dağıtımı yapılması önerilmektedir. Bu her zaman ideal değildir. Neyse ki, daha yeni GDB sürümlerini CentOS 6'ya yüklemek mümkündür. GDB bir sistem çekirdeği bileşeni yerine bir hata ayıklayıcı olduğundan, daha yeni bir sürümü kullanmak oldukça güvenlidir.

Bu makalede, CentOS 6'ya GDB'nin hem desteklenen hem de desteklenmeyen sürümlerinin nasıl yükleneceği açıklanmaktadır.

Ayrıca, C ++ Standart Kitaplığı (dize gibi) ve Standart Şablon Kitaplığı'nı (vektör gibi) kullanırken size daha kolay okunabilen hata ayıklama bilgileri vermek için GDB'nin nasıl ayarlanacağını açıklayacağım. Bu özelliğe güzel baskı denir.

VPS'nize giriş yapın ve kullanıcı hesabınızı ayarlayın

  1. VPS'nize giriş yapın. Bu, Vultr kontrol panelindeki "Konsolu Görüntüle" seçeneğine veya bir SSH istemcisine tıklanarak yapılabilir.

    (a) Kök olarak oturum açın.

    (b) Kendi kullanıcı hesabınızı oluşturun. Parolayı ayarlayın.

    adduser <username>
    passwd <username>
    

    (c) Kullanıcıya sudo erişimi verin.

    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) Kök olarak oturumu kapatın, ardından kullanıcı hesabınızla tekrar oturum açın. Asla root olarak giriş yapmak çok daha güvenlidir. Sudo kullanmak daha iyi bir uygulamadır.

GDB'nin resmi olarak desteklenen (eski) sürümünü yüklemek istiyorsanız

  1. GDB'yi yükleyin.

    sudo yum install gdb
    
  2. Yüklü sürümü kontrol edin ve konumunu görün.

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

Kaynaktan GDB'nin daha yeni bir sürümünü yüklemek istiyorsanız

  1. GCC gibi bir C derleyicisi kurun. GDB'yi kaynaktan oluşturmak için bir C ++ derleyicisi gerekli değildir, ancak GDB'nin güzel yazdırma özelliğini göstermek için gereklidir. CentCC 6'da GCC'yi Yükleme makalesinde belirtilen adımları uygulayarak GCC'nin daha yeni bir sürümünü kaynaktan oluşturabilirsiniz . Veya GCC'nin CentOS 6 resmi olarak desteklenen sürümünü aşağıdakileri çalıştırarak yükleyebilirsiniz:

    sudo yum install gcc gcc-c++
    
  2. Ek olarak gerekli paketleri kurun.

    sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
    
  3. Hangi GDB sürümünü kaynağından oluşturmak istediğinize karar verin. İndirilebilecek sürümleri görmek için GDB FTP sitesini ziyaret edin .

  4. İstediğiniz GDB sürümünün kaynağını alın. Bu makalenin geri kalanı v7.9.1 için yazılmıştır ve kaynakları içine indirir ~/sourceInstallations/gdb-7.9.1/- daha yeni sürümler için uygun sürüm numarasını değiştirmeniz gerekir.

    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. GDB oluşturun. Bu doğru şekilde tamamlanırsa, göreceğiniz son satırda "başarı" yazacaktır. Bazı hata görünümlü mesajların hızla kaydırıldığını görmek normaldir. Bunları görmezden gelmek güvenlidir.

    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. C ++ güzel baskı yükleyin.

    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. Yüklü sürümü ve konumunu kontrol edin.

    gdb --version
        May say: GNU gdb (GDB) 7.9.1
    which gdb
        /usr/local/bin/gdb
    
  8. İsteğe bağlı olarak GDB'yi çalıştırın ve güzel yazdırmaya bakın.

    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. İsteğe bağlı olarak sabit sürücü alanını geri kazanın. Kişisel ~/sourceInstallationsdizin 386MB etrafında alacak. İleride bir noktada kullanmanız gerekebilecek isteğe bağlı yapılandırma seçenekleri olduğu için muhtemelen dizinleri saklamak akıllıca olacaktır ve zaten çok şey yapmak daha hızlı olacaktır. Ayrıca, derleme işlemi daha sonra bir şeyler ters giderse kontrol edip çalışabileceğiniz günlükler oluşturur. Ancak, sudo make installdaha önce çalıştıktan sonra , yüklü GDB'niz bu dizindeki herhangi bir şeye bağlı değildir ve alan premium olabilir, bu nedenle bu adımı yapabilir ve 386MB'yi geri alabilirsiniz. ÖNEMLİ:~/gdb_printers/ dizini silmeyin ! GDB'yi her çalıştırışınızda bu dizinin içeriği yüklenir. GDB'nin kendisine DEĞİL derlenmişlerdir.

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


Leave a Comment

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?