نحوه نصب GDB در CentOS 6

GDB اشکال زدایی برای C، C ++، Objective-C، Pascal، Fortran، Go، D، OpenCL C، Ada و Modula-2 است.

CentOS مبتنی بر RHEL (Red Hat Enterprise Linux) است. یكی از مهمترین اهداف RHEL ، وجود سیستم عامل پایدار سرور است ، به این معنی كه نسخه های جدیدتر بسته های نرم افزاری همیشه در دسترس نیستند.

در زمان نوشتن ، CentOS 6 GDB v7.2 را پیشنهاد می کند. با این حال ، تیم GDB اخیراً کد v7.91 را منتشر کرد.

به منظور استفاده از نسخه جدیدتر GDB ، رسماً دستورالعمل لینوکس مختلف لینوکس را اجرا کنید. این همیشه ایده آل نیست. خوشبختانه ، نصب نسخه های جدیدتر GDB بر روی CentOS 6 امکان پذیر است از آنجا که GDB به جای یک جزء اصلی سیستم ، اشکال زدایی است ، شما از استفاده از نسخه های جدید نسبتاً مطمئن هستید.

در این مقاله نحوه نصب نسخه های پشتیبانی شده و پشتیبانی نشده از GDB در CentOS 6 توضیح داده شده است.

من همچنین نحوه تنظیم GDB را توضیح می دهم تا هنگام استفاده از کتابخانه استاندارد C ++ استاندارد (مانند رشته) و کتابخانه الگوی استاندارد (مانند بردار) اطلاعات اشکال زدایی با خواندن آسان تر را برای شما بخوانید. این ویژگی به چاپ زیبا گفته می شود.

به سیستم VPS خود وارد شوید و حساب کاربری خود را تنظیم کنید

  1. ورود به سیستم VPS. این کار را می توان با کلیک روی "مشاهده کنسول" در کنترل پنل Vultr یا با یک مشتری SSH انجام داد.

    (الف) به عنوان ریشه وارد شوید.

    (ب) حساب کاربری خود را ایجاد کنید. رمز عبور را تنظیم کنید.

    adduser <username>
    passwd <username>
    

    (ج) دسترسی سودو به کاربر اعطا کنید.

    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.
    

    (د) به عنوان root وارد شوید و سپس با حساب کاربری خود وارد سیستم شوید. بسیار ایمن تر است که هرگز در واقع به عنوان ریشه وارد نشوید. استفاده از سودو یک عمل بهتر است.

اگر می خواهید نسخه رسمی (قدیمی تر) پشتیبانی شده GDB را نصب کنید

  1. GDB را نصب کنید.

    sudo yum install gdb
    
  2. نسخه نصب شده را بررسی کنید و مکان آن را ببینید.

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

اگر می خواهید نسخه جدیدتری از GDB را از منبع نصب کنید

  1. یک کامپایلر C مانند GCC نصب کنید. کامپایلر C ++ برای ساخت GDB از منبع مورد نیاز نیست ، اما برای نشان دادن ویژگی چاپ زیبا GDB لازم است. شما می توانید با انجام مراحل موجود در مقاله نحوه نصب GCC در CentOS 6 ، نسخه جدیدتری از GCC را از مبدا تهیه کنید . یا می توانید نسخه اجرا شده GCC را با پشتیبانی رسمی CentOS 6 نصب کنید:

    sudo yum install gcc gcc-c++
    
  2. بسته های لازم را نصب کنید.

    sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
    
  3. تصمیم بگیرید کدام نسخه از GDB را که می خواهید از مبدأ بسازید. بازدید از سایت GDB FTP برای دیدن نسخه که برای دانلود در دسترس هستند.

  4. منبع نسخه GDB مورد نظر خود را دریافت کنید. بقیه این مقاله برای v7.9.1 نوشته شده است و منابع را در آنها بارگیری می کنید ~/sourceInstallations/gdb-7.9.1/- شما باید نسخه مناسب را برای نسخه های جدیدتر جایگزین کنید.

    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 بسازید. اگر این کار به درستی تکمیل شود ، آخرین خطی که مشاهده خواهید کرد می گوید "موفقیت". طبیعی است که به سرعت شاهد پیمایش برخی پیام های دارای خطا باشید. نادیده گرفتن این موارد امن است.

    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 ++ زیبا را نصب کنید.

    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. نسخه نصب شده و محل آن را بررسی کنید.

    gdb --version
        May say: GNU gdb (GDB) 7.9.1
    which gdb
        /usr/local/bin/gdb
    
  8. GDB را به صورت اختیاری اجرا کنید و چاپ زیبا را ببینید.

    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. به صورت اختیاری فضای هارد دیسک را پس بگیرید. ~/sourceInstallationsدایرکتوری شما حدود 386MB می گیرد. احتمالاً نگه داشتن دایرکتوری ها بسیار عاقلانه است ، زیرا گزینه های پیکربندی اختیاری وجود دارد که ممکن است در آینده در بعضی از موارد از آنها استفاده کنید ، و انجام کارهای دیگری که قبلاً انجام شده سریع تر باشد. همچنین ، روند ساخت ، سیاهههای مربوط را ایجاد می کند که بعداً اگر خطایی رخ دهد ، می توانید بررسی و کار کنید. اما بعد از اجرای sudo make installزودتر ، GDB نصب شده شما به هر چیزی در این فهرست بستگی ندارد و فضا می تواند در حق بیمه باشد ، بنابراین می توانید این مرحله را انجام دهید و 386MB یا همان را دوباره پس بگیرید. مهم:~/gdb_printers/ دایرکتوری را حذف نکنید ! هر بار که GDB را اجرا می کنید ، محتوای این فهرست بارگیری می شود. آنها به خود GDB وارد نشده بودند.

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

یک نظر بگذارید

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.