คู่มือนี้จะสอนวิธีการ:
เชิงอรรถ: ดัดแปลงมาจากสโลแกนของ Perl: "สิ่งง่าย ๆ ควรเป็นเรื่องง่ายและยากควรเป็นไปได้"
นี่คือคอลเลกชันวิธีการทำงานของวิธีการและสูตรการคัดลอก N-Paste สำหรับการดีบักที่ประสบความสำเร็จของปัญหาซอฟต์แวร์ที่เรียบง่ายและซับซ้อน บางส่วนค่อนข้างสมบูรณ์ในขณะที่อื่น ๆ จะเสร็จสิ้นในภายหลังและยังไม่ได้เริ่มอื่น ๆ
ฉันพัฒนาซอฟต์แวร์มาตั้งแต่ปี 2538 และงานนี้เกี่ยวข้องกับการดีบักจำนวนมาก ในช่วงหลายปีที่ผ่านมาฉันได้พัฒนาวิธีการที่มีประสิทธิภาพต่าง ๆ สำหรับการค้นพบแหล่งที่มาของปัญหาซึ่งเป็นขั้นตอนที่ยากที่สุดในการแก้ปัญหา เนื่องจากหลังจากเข้าใจปัญหาโดยทั่วไปแล้วความละเอียดค่อนข้างง่าย
บ่อยครั้งที่คนที่ฉันจะทำการดีบักปัญหากับคนที่แนะนำให้แบ่งปันแนวทางของฉันกับโลก ฉันมักจะพูดว่ามันยากเกินไปที่จะพูดคุย แต่เมื่อเร็ว ๆ นี้เมล็ดพันธุ์ที่ปลูกดูเหมือนจะงอกออกมาและในเอกสารต่อไปนี้ฉันจะพยายามแบ่งปันข้อมูลเชิงลึกบางส่วนเพื่อบรรเทาปัญหาที่ยากลำบากในบางครั้ง
การเขียนเกี่ยวกับการดีบักในช่องว่างเป็นเรื่องยากมากและเนื่องจากฉันไม่ได้บันทึกการใช้งานกรณีจึงต้องใช้เวลาสักครู่ในการสร้างสิ่งนี้ดังนั้นคาดว่าหน้าเหล่านี้จะเป็นงานที่กำลังดำเนินการอยู่ (WIP) สำหรับดวงจันทร์จำนวนมาก แต่หวังว่าความคิดบางอย่างอาจถูกส่งไปยังคุณเร็วกว่าในภายหลังและพวกเขาจะช่วยลดภาระการดีบักในการทำงานและเล่นโครงการของคุณ
วิธีการดีบักอย่างรวดเร็ว
การดีบักโปรแกรมคอมไพล์ - gdb , ldd , nm , LD_LIBRARY_PATH , LD_PRELOAD
Debugging Python - py-spy , Paths, Auto-Print
เครื่องมือ UNIX สำหรับการดีบัก - bash , strace , make , promp, nohup
โครงการเรียนรู้ของเครื่องจักรดีบัก (ภายนอก)
หากคุณพบข้อผิดพลาดพิมพ์ผิดหรือต้องการเสนอการปรับปรุงโปรดอย่าลังเลที่จะเปิดปัญหาหรือมีส่วนร่วมในการประชาสัมพันธ์
เนื้อหาของไซต์นี้มีการกระจายภายใต้แหล่งอ้างอิงที่มาจากการระบุแหล่งที่มา 4.0
✔ การเรียนรู้ของเครื่อง: ML Engineering Online Book | ML Ways | การพอร์ต
✔ มัคคุเทศก์: ศิลปะการดีบัก
✔ แอปพลิเคชัน: ipyexperiments
✔ เครื่องมือและ Cheatsheets: Bash | Conda | Git | JUPYTER-NOTEBOOK | ทำให้ | Python Tensorboard | Unix