วิธีการติดตั้ง 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

แนะนำอย่างเป็นทางการให้เรียกใช้ Linux distro อื่นเพื่อใช้ GDB รุ่นใหม่ มันไม่เหมาะเสมอไป โชคดีที่มีความเป็นไปได้ที่จะติดตั้ง GDB เวอร์ชันใหม่บน CentOS 6 เนื่องจาก GDB เป็นตัวดีบักแทนที่จะเป็นองค์ประกอบหลักของระบบคุณจึงค่อนข้างปลอดภัยที่จะใช้เวอร์ชันที่ใหม่กว่า

บทความนี้จะอธิบายวิธีติดตั้ง GDB ทั้งที่สนับสนุนและไม่สนับสนุนบน CentOS 6

ฉันจะอธิบายวิธีตั้งค่า GDB เพื่อให้ข้อมูลการดีบักที่อ่านง่ายขึ้นเมื่อใช้ไลบรารีมาตรฐาน C ++ (เช่นสตริง) และไลบรารีแม่แบบมาตรฐาน (เช่นเวกเตอร์) คุณสมบัตินี้เรียกว่าการพิมพ์ที่สวย

เข้าสู่ VPS ของคุณและตั้งค่าบัญชีผู้ใช้ของคุณ

  1. เข้าสู่ระบบ VPS ของคุณ สิ่งนี้สามารถทำได้โดยการคลิก "ดูคอนโซล" ในแผงควบคุม Vultr หรือกับไคลเอนต์ SSH

    (a) เข้าสู่ระบบในฐานะรูท

    (b) สร้างบัญชีผู้ใช้ของคุณเอง ตั้งรหัสผ่าน

    adduser <username>
    passwd <username>
    

    (c) ให้สิทธิ์การเข้าถึง sudo แก่ผู้ใช้

    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) ออกจากระบบในฐานะผู้ใช้จากนั้นลงชื่อเข้าใช้อีกครั้งด้วยบัญชีผู้ใช้ของคุณ มีความปลอดภัยมากกว่าที่จะไม่เข้าสู่ระบบในฐานะ root การใช้ sudo เป็นการฝึกฝนที่ดีกว่า

หากคุณต้องการติดตั้ง 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 จากแหล่งโดยการดำเนินการตามขั้นตอนในบทความวิธีการติดตั้ง GCC บน CentOS 6 หรือคุณสามารถติดตั้ง CentOS 6 รุ่นที่รองรับอย่างเป็นทางการของ GCC โดยการเรียกใช้:

    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.
    

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true