จะติดตั้งสัญลักษณ์ดีบักสำหรับแพ็คเกจที่ติดตั้งได้อย่างไร


8

ฉันพยายามดูว่าโปรแกรมทำงานอย่างไรโดยเรียกใช้งานโดยเครื่องมือดีบั๊ก 'Qt Creator' สำหรับการวางแนวที่ดีกว่าฉันต้องการเห็นอรรถประโยชน์ของระบบ (core) อย่างเต็มที่ในหน้าต่าง call stack ตามที่ฉันใช้จาก MS Visual Studio 6.0 ไม่เพียง แต่จะเห็นรหัสแอสเซมบลีของพวกเขา สำหรับยูทิลิตีตัวดีบัก 'Qt Creator' แสดงเฉพาะสัญลักษณ์การดีบักที่ใช้งานไม่ได้ (บางครั้งระบบจะสร้างรายงานข้อผิดพลาดสำหรับนักพัฒนากล่องโต้ตอบรายงานข้อผิดพลาดได้ขอให้ติดตั้งสัญลักษณ์ดังกล่าวสำหรับโปรแกรมเฉพาะเท่านั้น) ฉันจะรับสัญลักษณ์การดีบักหลักได้อย่างไร (โดยไม่ต้องแปลเวอร์ชั่น Ubuntu ทั้งหมดฉันใช้ 'Update Manager' เพื่อติดตั้งการอัปเดตเป็นประจำ

sys / kernel / / แก้ปัญหา / x86
ไดเรกทอรีมีไฟล์เดียวที่ว่างเปล่า ฉันไม่พบใน 'ศูนย์ซอฟต์แวร์ Ubuntu' และฉันจะดูว่ามีบางแพ็คเกจที่http://packages.ubuntu.com/precise/x11/ หรือไม่เป็นสิ่งที่ฉันต้องการ) ขอบคุณ!


1
ดูนี้หน้า
saiarcot895

@ saiarcot895 ใช้งานได้โปรดกำหนดความคิดเห็นของคุณเป็นคำตอบเพื่อที่ฉันจะได้ตั้งเป็นที่ยอมรับ สัญลักษณ์แก้ปัญหาอยู่ที่ไหนในระบบไฟล์ของฉัน ขอบคุณ!
TomášPečený

คำตอบ:


8

แพ็คเกจใน Ubuntu มีสัญลักษณ์การดีบักเก็บไว้ใน repo แยกต่างหาก ในการดาวน์โหลดสัญลักษณ์การดีบักเหล่านี้ให้เรียกใช้ (คัดลอกและวาง):

printf "deb http://ddebs.ubuntu.com %s main restricted universe multiverse\n" $(lsb_release -cs){,-updates,-security,-proposed} | \
 sudo tee -a /etc/apt/sources.list.d/ddebs.list

เพื่อเพิ่มลิงก์ repo ลงไป/etc/apt/sources.list.d/ddebs.list(ทำให้การลบ repo ง่ายขึ้น) อีกวิธีหนึ่งคุณสามารถคัดลอกแต่ละdebลิงก์ไปยัง Software Sources และเพิ่มลิงค์เหล่านั้นได้ (โปรดทราบว่าคุณอาจต้องแทนที่$(lsb_release -cs)ด้วย Ubuntu ที่คุณใช้งานอยู่)

ในการดาวน์โหลดสัญลักษณ์การแก้จุดบกพร่องสำหรับpackageคุณก็สามารถติดตั้งหรือในบางกรณีpackage-dbgsym package-dbgโปรดทราบว่าแพคเกจจาก PPA ไม่ได้มีการแก้ไขข้อบกพร่องที่มีอยู่จากสัญลักษณ์ Repos package-dbgและว่ามันเป็นความรับผิดชอบของผู้ดูแลที่จะให้แพคเกจที่มีสัญลักษณ์การแก้จุดบกพร่องที่มักจะอยู่ในแพคเกจที่มีชื่อว่า

มีการติดตั้งสัญลักษณ์การตรวจแก้จุดบกพร่อง/usr/lib/debugถึงแม้ว่าgdbจะอ่านสัญลักษณ์การตรวจแก้จุดบกพร่องโดยอัตโนมัติถ้ามีและคุณไม่จำเป็นต้องระบุตำแหน่งที่จะค้นหาด้วยตนเองทั้งนี้ขึ้นอยู่กับรุ่นแพคเกจความเข้ากันได้ของ Debhelper สัญลักษณ์แก้จุดบกพร่องอาจอยู่ในโฟลเดอร์ ชื่อของบิลด์ ID ที่อยู่ด้านใน.build-id( >= 9) หรืออาจอยู่ในตำแหน่งที่สัมพันธ์กับตำแหน่งที่ไฟล์ปฏิบัติการจะถูกติดตั้ง ( < 9) ตัวอย่างเช่นหากคุณกำลังมองหาที่ตั้งของสัญลักษณ์การดีบัก/usr/bin/zipและเวอร์ชันนั้นน้อยกว่า 9 มันจะเป็น/usr/lib/debug/usr/bin/zipเช่นนั้น

ในการลบสัญลักษณ์การดีบักและ repo ทั้งหมดให้เรียกใช้sudo apt-get remove \.*-dbgsymเพื่อลบ-dbgsymแพ็คเกจทั้งหมดและsudo rm /etc/apt/sources.list.d/ddebs.listเพื่อลบ repo สัญลักษณ์การดีบัก


5
เพียงทราบว่าตอนนี้ PPAs สร้างแพ็คเกจ dbgsym แล้ว แต่คุณต้องเพิ่มบรรทัด deb ด้วย "main / debug" เช่น: "deb ppa.launchpad.net/USER/PPA/ubuntuสดใสหลัก / debug"
Michael Terry

ในฐานะของ bionic repo ddebs ไม่มีไฟล์ Release สำหรับ bionic-security
Paulo Marcel Coelho Aragão

5

กำลังเพิ่มไปยังคำตอบของ saircot859 คุณต้องติดตั้งคีย์ GPG สำหรับที่เก็บตามที่อธิบายไว้ที่นี่: https://wiki.ubuntu.com/Debug%20Symbol%20Packages

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01 C8CAB6595FDFF622

อัปเดตหน้า wiki แล้ว บน Ubuntu 18.04 LTS sudo apt install ubuntu-dbgsym-keyringและใหม่กว่าการใช้
user7610

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.