คำถามติดแท็ก gdb

ใช้แท็กนี้สำหรับปัญหาที่เกี่ยวข้องหรือเกี่ยวข้องกับ GDB ซึ่งเป็นดีบักเกอร์มาตรฐานสำหรับระบบซอฟต์แวร์ GNU

8
ฉันจะเรียกใช้โปรแกรมด้วยอาร์กิวเมนต์ commandline โดยใช้ GDB ภายในสคริปต์ Bash ได้อย่างไร
เมื่อเรียกใช้โปรแกรมบน GDB โดยปกติแล้วอาร์กิวเมนต์สำหรับโปรแกรมจะถูกกำหนดที่runคำสั่ง มีวิธีเรียกใช้โปรแกรมโดยใช้ GDB และให้อาร์กิวเมนต์ภายในเชลล์สคริปต์หรือไม่ ฉันเห็นคำตอบในคำถามที่เกี่ยวข้องโดยกล่าวถึงว่าเราสามารถแนบ GDB กับโปรแกรมหลังจากที่สคริปต์เริ่มทำงาน แต่ฉันจะต้อง 'รอ' โปรแกรม มีวิธีอื่นในการทำเช่นนี้หรือไม่?

6
ฉันจะพิมพ์ค่าทั้งหมดของสตริงแบบยาวใน gdb ได้อย่างไร?
ฉันต้องการพิมพ์ความยาวเต็มของ C-string ใน GDB โดยค่าเริ่มต้นมันเป็นตัวย่อฉันจะบังคับให้ GDB พิมพ์สตริงทั้งหมดได้อย่างไร
376 c++  c  string  debugging  gdb 


5
ฉันสามารถตั้งเบรกพอยต์ใน 'การเข้าถึงหน่วยความจำ' ใน GDB ได้หรือไม่?
ฉันใช้งานแอพพลิเคชั่นผ่าน gdb และฉันต้องการตั้งค่าเบรกพอยต์เมื่อใดก็ตามที่มีการเข้าถึง / เปลี่ยนแปลงตัวแปรเฉพาะ มีวิธีที่ดีในการทำเช่นนี้หรือไม่? ฉันยังสนใจวิธีอื่น ๆ ในการตรวจสอบตัวแปรใน C / C ++ เพื่อดูว่า / เมื่อมันเปลี่ยนแปลง

5
วิธีการส่งผ่านข้อโต้แย้งและเปลี่ยนเส้นทาง stdin จากไฟล์ไปยังโปรแกรมทำงานใน gdb?
ฉันมักจะเรียกใช้โปรแกรมเป็น: ./a.out arg1 arg2 <file ฉันต้องการดีบักโดยใช้ gdb ฉันตระหนักถึงการset argsทำงาน แต่ใช้งานได้จากพรอมต์ gdb เท่านั้น
210 c++  debugging  gdb 

28
มี C ++ gdb GUI สำหรับ Linux หรือไม่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ สั้น ๆ : ไม่มีใครรู้ GUI สำหรับ gdb ที่นำมาใช้หรือใกล้เคียงกับคุณสมบัติที่คุณได้รับในเวอร์ชันล่าสุดของ Visual C ++ ในรายละเอียด: ในฐานะคนที่ใช้เวลาเขียนโปรแกรมใน Windows บล็อกที่มีขนาดใหญ่กว่าที่ฉันเคยพบเมื่อใดก็ตามที่ฉันต้องใช้รหัส C ++ ใน Linux คือการดีบักทุกอย่างโดยใช้ commandline gdb ทำให้ฉันใช้เวลานานกว่าหลายเท่า Visual Studio และดูเหมือนว่าจะไม่ได้ดีขึ้นด้วยการฝึกฝน บางสิ่งง่ายกว่าหรือเร็วกว่าในการแสดงภาพกราฟิก โดยเฉพาะฉันกำลังมองหา GUI ที่: จัดการพื้นฐานทั้งหมดเช่นการก้าวไปสู่โค้ดดูตัวแปรและเบรกพอยต์ ทำความเข้าใจและสามารถแสดงเนื้อหาของชนิดข้อมูล C ++ ที่ซับซ้อนและซ้อนกัน ไม่สับสนโดยเฉพาะอย่างยิ่งสามารถก้าวผ่านรหัสเทมเพลตและโครงสร้างข้อมูลอย่างชาญฉลาดในขณะที่แสดงข้อมูลที่เกี่ยวข้องเช่นประเภทพารามิเตอร์ สามารถจัดการแอปพลิเคชั่นที่เป็นเธรดและสลับไปมาระหว่างเธรดต่างๆไปจนถึงขั้นตอนหรือดูสถานะของ สามารถจัดการกับการแนบกับกระบวนการที่เริ่มทำงานแล้วหรืออ่านการถ่ายโอนข้อมูลหลักนอกเหนือจากการเริ่มโปรแกรมใน gdb หากโปรแกรมดังกล่าวไม่มีอยู่ฉันก็อยากจะฟังเกี่ยวกับประสบการณ์ที่ผู้คนเคยมีกับโปรแกรมที่ตรงกับสัญลักษณ์แสดงหัวข้อย่อยอย่างน้อย …
210 c++  linux  gdb  debugging 


2
ฉันจะทำให้ gdb บันทึกประวัติคำสั่งได้อย่างไร
ฉันจะตั้งค่าgdbเพื่อบันทึกประวัติคำสั่งได้อย่างไร เมื่อเริ่มต้นgdbเซสชันใหม่ฉันต้องการใช้ปุ่มลูกศรขึ้นเพื่อเข้าถึงคำสั่งของเซสชันก่อนหน้า
195 debugging  gdb 


1
แสดงคำสั่งการประกอบปัจจุบันใน GDB
ฉันกำลังทำการดีบักระดับชุดประกอบใน GDB มีวิธีที่จะทำให้ GDB แสดงคำสั่งชุดประกอบปัจจุบันในลักษณะเดียวกับที่แสดงบรรทัดซอร์สปัจจุบันหรือไม่ เอาต์พุตเริ่มต้นหลังจากทุกคำสั่งมีลักษณะดังนี้: 0x0001433f 990 Foo::bar(p); สิ่งนี้ให้ที่อยู่ของคำแนะนำปัจจุบัน แต่ฉันต้องอ้างอิงกลับไปที่ผลลัพธ์ของdisassembleคำสั่งเพื่อดูว่าคำสั่งใดที่ฉันกำลังเรียกใช้อยู่
179 assembly  gdb 

11
จะไฮไลต์และแสดงสี gdb ระหว่างการดีบักแบบโต้ตอบได้อย่างไร
กรุณาอย่าตอบฉันควรใช้ ddd, nemiver, emacs, vim หรือส่วนหน้าอื่น ๆ ฉันชอบ gdb ตามที่เป็นอยู่ แต่ต้องการดูผลลัพธ์ด้วยสีเทอร์มินัล
172 gdb  terminal  colors 

3
ฉันจะตั้งค่าเบรกพอยต์แบบมีเงื่อนไขใน gdb ได้อย่างไรเมื่อ char * x ชี้ไปยังสตริงที่มีค่าเท่ากับ "hello"
ฉันสามารถระบุว่าฉันต้องการให้ gdb แตกที่บรรทัด x เมื่อchar* xชี้ไปที่สตริงที่มีค่าเท่ากับ"hello"หรือไม่ ถ้าใช่เป็นอย่างไร

9
ฉันจะวิเคราะห์ไฟล์ core dump ของโปรแกรมด้วย GDB เมื่อมีพารามิเตอร์บรรทัดคำสั่งได้อย่างไร
โปรแกรมของฉันทำงานเช่นนี้: exe -p param1 -i param2 -o param3 มันล้มเหลวและสร้างไฟล์ดัมพ์หลัก, core.pid. ฉันต้องการวิเคราะห์ไฟล์ core dump โดย gdb ./exe -p param1 -i param2 -o param3 core.pid แต่ GDB รับรู้พารามิเตอร์ของไฟล์ EXE เป็นอินพุตของ GDB ฉันจะวิเคราะห์ไฟล์ core dump ในสถานการณ์นี้ได้อย่างไร
156 linux  debugging  gdb  coredump 

8
คุณดีบักรหัส C ++ เป็นกลุ่มหรือไม่ อย่างไร?
คำถามนี้สำหรับทุกคนที่ใช้ Vim เพื่อพัฒนาแอพพลิเคชั่น C ++ มีช่วงเวลาหนึ่งในชีวิตของฉันซึ่งสามารถอธิบายได้ว่า 'ฉันเกลียด Vim !!!' .. 'Vim is nice!' อย่างไรก็ตามการเติบโตขึ้นส่วนใหญ่บน IDEs การพัฒนาของไมโครซอฟท์ฉันเคยชินกับการใช้งานF5- F11ทางลัดเมื่อทำการดีบั๊กโค้ด, หน้าต่างดู, call stack และรหัสหลัก - ทั้งหมดนี้มองเห็นได้โดยไม่จำเป็นต้องพิมพ์คำสั่ง GDB ใด ๆ ดังนั้นนี่คือคำถาม: คุณใช้ Vim เพื่อแก้จุดบกพร่องหรือไม่ หรือคุณเปลี่ยนไปใช้ IDE บางอย่างเพื่อจุดประสงค์นี้ อันไหน? สำหรับผู้ที่ใช้ Vim to debug code: มีปลั๊กอินสำหรับตั้งเบรกพอยต์ในตัวแก้ไขหรือไม่ให้ไฮไลต์บรรทัดที่เรากำลังทำการดีบัก, การนำทางอัตโนมัติในระหว่างขั้นตอน, ก้าวเข้าสู่, ก้าวออก? โปรดอย่าบอกฉันว่าคุณใช้ GDB เป็นบรรทัดคำสั่งดูบรรทัดเดียวที่ debugged และอื่น ๆ
152 c++  debugging  vim  gdb 

2
ฉันจะรับ backtrace สำหรับเธรดทั้งหมดใน GDB ได้อย่างไร
มีคำสั่งที่เทียบเท่าใน GDB กับของ WinDbg's "! process 0 7" หรือไม่? ฉันต้องการแยกเธรดทั้งหมดในไฟล์ดัมพ์พร้อมกับ backtraces ใน GDB "เธรดข้อมูล" จะไม่แสดงผลการติดตามสแต็ก ดังนั้นมีคำสั่งที่ทำหรือไม่

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