ดีบักเกอร์ Linux C / C ++ ใดที่ดีที่สุด (หรือ front-end to gdb) เพื่อช่วยสอนการเขียนโปรแกรม [ปิด]


106

ฉันสอนหลักสูตรการเขียนโปรแกรม C ++ แบบ "lite" ให้กับมือใหม่ ("lite" หมายถึงไม่มีพอยน์เตอร์ไม่มีคลาสเป็น C แบบเก่าธรรมดารวมถึงการอ้างอิงและสตริง STL และเวกเตอร์) นักเรียนไม่มีประสบการณ์ในการเขียนโปรแกรมมาก่อนดังนั้นฉันเชื่อว่าการใช้ดีบักเกอร์แบบโต้ตอบจะช่วยให้พวกเขาเข้าใจโฟลว์โปรแกรมตัวแปรและการเรียกซ้ำ

หลักสูตรนี้สอนใน Linux การสอนให้ใช้ gdb เป็นเพียงการใช้งานมากเกินไป (จะไม่ใช้หรือไม่เข้าใจคุณสมบัติส่วนใหญ่) ฉันต้องการสิ่งที่เรียบง่าย แต่ใช้งานง่าย: เพื่อดูว่าตอนนี้โปรแกรมอยู่ที่บรรทัดใดสิ่งที่อยู่ในสแต็ก (ตัวแปรท้องถิ่นการเรียกก่อนหน้า ฯลฯ ) ฉันดูคล้ายกับตัวดีบักเกอร์ของ Turbo Pascal หรือ Turbo C ++ Borland หรือตัวแก้ไขข้อบกพร่อง Visual Studio

ขอบคุณ,


4
ฉันไม่เข้าใจเหตุผลของการสอน C ++ โดยไม่มีชั้นเรียน แต่ฉันรับรู้ถึงความพยายาม ... ในการสอนฉันหมายถึง :-)
m-ric

1
C / C ++ ไม่เหมาะกับฉันเหมือนตัวเลือกที่ดีสำหรับผู้เริ่มต้นทั้งหมด ...
Jaime Hablutzel

คำตอบ:


36

dddเป็นฟรอนต์เอนด์แบบกราฟิกสำหรับ gdb ที่ค่อนข้างดี ด้านล่างด้านหนึ่งคืออินเทอร์เฟซ X แบบคลาสสิก แต่ฉันจำได้ว่ามันใช้งานง่าย


2
DDD เป็นส่วนหน้าที่ยอดเยี่ยมจริงๆ ฉันเคยสอน C ++ นักเรียนของฉันไม่เข้าใจวิธีใช้ gdb แต่หลังจากแสดงการแนะนำ ddd อย่างรวดเร็ว (เป็นเพียงพื้นฐานเบื้องต้นและบอกให้คอมไพล์ด้วย -g) พวกเขาก็มีความเชี่ยวชาญในการดีบักโค้ดมากขึ้นอย่างรวดเร็วและเข้าใจสิ่งที่เกิดขึ้น UI อาจดู "เก่าและล้าสมัย" แต่ทำไมต้องแก้ไขสิ่งที่เห็นได้ชัด
wasatz

43
ddd มีหนึ่งใน UI ที่น่าเกลียดที่สุดที่ฉันเคยเห็นimgur.com/UFTBjnW
ubershmekel

3
แม้ว่าฉันจะใช้ ddd มากสำหรับ C แต่ก็มีการสนับสนุนเวกเตอร์และ std :: things โดยทั่วไปค่อนข้างแย่ เป็นประจำต้องให้ฉันระบุชื่อที่ยุ่งเหยิงของบางสิ่งบางอย่างเพื่อตั้งค่าเบรกพอยต์ด้วย ฉันไม่แนะนำให้นักเรียนทำตามขั้นตอน C ++ แรก
PypeBros

1
DDD เหมาะอย่างยิ่งสำหรับการตรวจสอบโครงสร้างข้อมูลเนื่องจากคุณสามารถจัดวางบนโต๊ะทำงานขนาดใหญ่และดูว่าพวกเขาชี้ไปที่กันและกันและสิ่งของต่างๆได้อย่างไร แต่เป็นความจริงที่มีประโยชน์สำหรับข้อมูลสไตล์ C เท่านั้น (ไม่มี STL ตัวชี้ทุกที่)
Roman Plášil

1
สิ่งนั้นเหมือนอายุ 17 ปี
Rolf

25

คุณอาจลองใช้Insightกราฟิก front-end สำหรับ gdb เขียนโดย Red Hat หรือถ้าคุณใช้สภาพแวดล้อมเดสก์ทอป GNOME คุณยังสามารถลองNemiver


4
Insight นั้นยอดเยี่ยมมาก แต่มันถูกลบออกจาก Debian และฉันไม่สามารถติดตั้งบน Linux ของฉันได้ฉันไม่รู้ว่าใครรับผิดชอบ แต่เขาเข้าไปในรายชื่อศัตรูที่เป็นมนุษย์ของฉันและถ้าฉันพบเขาเขาจะต้องเผชิญกับความโกรธของฉัน! ใครก็ได้; ยังมีวิธีที่จะทำให้มันทำงานได้ แต่ UI มีความผิดพลาดเล็กน้อย: baptiste-wicht.com/2012/01/…
MasterMastic

@SamuelLampa apt-get install nemiver
Narek Babajanyan

@MasterMastic มันถูกลบออกเพราะไม่มีใครดูแลมันฉันเดา ไม่ต้องกังวลคุณสามารถเอาชนะได้!
andrewsh

16

คุณอาจต้องการตรวจสอบ Eclipse CDT มี C / C ++ IDE ที่ทำงานบนหลายแพลตฟอร์ม (เช่น Windows, Linux, Mac OS X เป็นต้น) การดีบักด้วย Eclipse CDT เปรียบได้กับการใช้เครื่องมืออื่น ๆ เช่น Visual Studio

คุณสามารถดูบทช่วยสอน Eclipse CDT Debugซึ่งมีภาพหน้าจอจำนวนมาก


14
เพื่อน ๆ นักเรียนจะใช้เวลาหลายสัปดาห์ในการเรียนรู้ Eclipse
MrFox

14
-1 สำหรับการแนะนำ Eclipse
Celeritas

7
ฉันจะไม่ -1 คะแนน แต่ IDE ห่วย
ovrwngtvity

2
และเนื่องจากพวกคุณบ่นมากคุณจะแนะนำอะไร? code :: บล็อคที่ไม่ได้อัพเดทมา 3 ปีแล้ว?
JohnJohn

3
Eclipse นั้นยอดเยี่ยมสำหรับ Java แต่มันค่อนข้างแย่สำหรับ C / C ++ ...

14

Qt Creatorนอกเหนือจากสินค้าอื่น ๆ แล้วยังมีการรวมดีบักเกอร์ที่ดีสำหรับ CDB, GDB และดีบักเกอร์ Symnbian บนแพลตฟอร์มที่รองรับทั้งหมด คุณไม่จำเป็นต้องใช้ Qt เพื่อใช้ Qt Creator IDE และคุณไม่จำเป็นต้องใช้ QMake แต่ก็มีการรวม CMake ด้วยแม้ว่า QMake จะใช้งานง่ายมากก็ตาม

คุณอาจต้องการใช้ Qt Creator เป็น IDE เพื่อสอนการเขียนโปรแกรมโดยพิจารณาว่ามีคุณสมบัติที่ดีบางประการ:

  • โปรแกรมแก้ไข C ++ ที่ชาญฉลาดและทันสมัยมาก
  • โครงการและสร้างเครื่องมือการจัดการ
  • การรวม QMake และ CMake
  • ระบบความช่วยเหลือแบบบูรณาการที่คำนึงถึงบริบท
  • ดีบักเกอร์ภาพที่ยอดเยี่ยม (CDB, GDB และ Symbian)
  • รองรับ GCC และ VC ++
  • เครื่องมือนำทางรหัสอย่างรวดเร็ว
  • รองรับ Windows, Linux และ Mac OS X

สนับสนุนการดีบักโปรแกรมขนาดเล็กที่ไม่มีไฟล์โครงการหรือไม่? ฉันจำได้ว่าใช้สำหรับโปรแกรมที่ใหญ่กว่าของฉัน แต่การตั้งค่าครั้งแรกค่อนข้างเจ็บปวดแม้ว่า IDE จะดีมาก
syockit

12

บางทีมันอาจจะเป็นทางอ้อมเพื่อ gdb (เพราะมันเป็น IDE) แต่คำแนะนำของฉันจะเป็นKDevelop ด้วยความไม่พอใจกับดีบักเกอร์ของ Visual Studio (ทำงานอย่างมืออาชีพมาหลายปี) จนถึงตอนนี้ฉันรู้สึกว่าการดีบักที่สะดวกสบายที่สุดใน KDevelop (เป็นงานอดิเรกที่บ้านเพราะฉันไม่สามารถซื้อ Visual Studio สำหรับการใช้งานส่วนตัวได้ - จนกระทั่ง Express Edition ออกมา ). มัน "ดูคล้ายกับ" Visual Studio เมื่อเทียบกับ IDE อื่น ๆ ที่ฉันเคยทดลอง (รวมถึง Eclipse CDT) เมื่อพูดถึงการดีบัก step-through, step-in ฯลฯ (การวางจุดพักค่อนข้างอึดอัดเพราะฉันไม่ ' ไม่ชอบใช้เมาส์มากเกินไปในการเขียนโค้ด แต่ก็ไม่ยาก)

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