เนื้อหาในเว็บไซต์นี้ได้รับการแปลโดยใช้ปัญญาประดิษฐ์ (AI) หรือเทคโนโลยีการแปลด้วยเครื่อง และอาจมีข้อผิดพลาด

Skip to content

การปรับปรุงตัวแก้ไขข้อผิดพลาดของ Lua!

วันนี้เรารู้สึกตื่นเต้นที่จะประกาศการปรับปรุงครั้งใหญ่ของ Lua Debugger ของเรา! คุณสมบัตินี้ถูกออกแบบมาเพื่อช่วยให้คุณเข้าใจว่าโค้ดของคุณทำงานอย่างไรและระบุข้อผิดพลาดได้อย่างมีประสิทธิภาพมากกว่าตัวเลือกที่ใช้กันทั่วไป เช่น คำสั่งพิมพ์ หากคุณยังไม่ได้สำรวจ Lua Debugger เราขอเชิญคุณมาตรวจสอบว่ามันสามารถช่วยคุณในการดีบักโค้ดของคุณได้อย่างไร ก่อนที่จะอธิบายการปรับปรุงและการแก้ไขล่าสุด เรามาทบทวนคุณสมบัติหลักของ Lua Debugger กันก่อน

จุดหยุดชั่วคราว

การแทรกจุดพักการทำงาน (Breakpoints) ลงในโค้ดของคุณจะช่วยให้คุณสามารถหยุดเกมไว้ชั่วคราวที่จุดใดก็ได้เพื่อตรวจสอบตรรกะการทำงานของเกมนั้น ๆ ได้ ในการใช้จุดพักการทำงาน ให้คุณค้นหาตำแหน่งโดยประมาณที่เกมของคุณมีปัญหา จากนั้นให้ตั้งค่าจุดพักการทำงานไว้ที่บรรทัดของโค้ดที่คุณต้องการข้อมูลเพิ่มเติม โดยคลิกที่ตำแหน่งทางซ้ายของบรรทัดโค้ดนั้น โค้ดของคุณจะหยุดการทำงานชั่วคราว และตัวแปรทั่วโลก (global) ตัวแปรท้องถิ่น (local) คุณสมบัติ (properties) และการอ้างอิงถึงวัตถุ (object references) ทั้งหมดจะมีค่าตามที่กำหนดไว้ในเกมจนถึงจุดนั้น ๆ ปรากฏให้เห็น

ในตัวอย่างนี้ ได้มีการตั้งค่าจุดหยุดชั่วคราวไว้ที่คำสั่ง print ซึ่งช่วยให้คุณสามารถตรวจสอบค่าของตัวแปรที่ตั้งค่าไว้ได้โดยนำเคอร์เซอร์ไปวางเหนือตัวแปรนั้น

ให้โปรแกรมทำงานทีละขั้นตอน

เมื่อคุณหยุดการทำงานของโค้ดไว้ที่จุดหยุดชั่วคราว (Breakpoint) ที่กำหนดไว้ คุณสามารถมุ่งเน้นไปที่การวินิจฉัยสิ่งที่เกิดขึ้นได้ ตัวอย่างเช่น เมื่อคุณไปถึงการเรียกใช้ฟังก์ชันอื่น คุณสามารถ Step Into ฟังก์ชันเหล่านั้นเพื่อตรวจสอบว่ากำลังทำอะไรอยู่ได้ คุณยังสามารถ Step Out ออกจากฟังก์ชันใดก็ได้ ซึ่งจะรันโค้ดต่อไปจนกว่าฟังก์ชันนั้นจะคืนค่าและหยุดที่คำสั่งถัดไปในโค้ดที่เรียกใช้ฟังก์ชันนั้น ฟังก์ชันการทำงานนี้ช่วยให้คุณสังเกตการเปลี่ยนแปลงของตัวแปรต่างๆ อย่างใกล้ชิดและดูว่าฟังก์ชันใดกำลังถูกเรียกใช้บ้าง

In this example, clicking the Step Into button moves the debugger inside the function called testFunc( )
ในตัวอย่างนี้ การคลิกปุ่ม Step Out จะย้ายตัวดีบักออกจากฟังก์ชันที่เรียกว่า testFunc( ) และไปยังบรรทัดถัดไปของโค้ดหลังจากที่มีการเรียกใช้ฟังก์ชันนั้นครั้งแรก

ดูการเปลี่ยนแปลงของตัวแปรของคุณ

เพิ่มการดู (Add Watch) ช่วยให้คุณสามารถบอกตัวแก้ไขข้อผิดพลาดของ Lua (Lua Debugger) ว่าคุณต้องการติดตามหรือดูตัวแปรใดเมื่อมันมาถึงจุดหยุด (Breakpoints) คุณสามารถเพิ่มรายการลงในรายการดูได้โดยเพียงเลือกตัวแปรที่ต้องการและคลิกขวาที่มันในมุมมองสคริปต์ จากนั้นคลิกที่เมนู "เพิ่มการดู" (Add Watch) หรือคุณสามารถคลิกที่ปุ่มเพิ่มการดู (Add Watch) และพิมพ์ชื่อของตัวแปรที่ต้องการได้เช่นกัน ระบบจะดึงข้อมูลเกี่ยวกับค่าของตัวแปรที่อยู่ภายใต้การดูโดยอัตโนมัติเมื่อถึงจุดหยุด

ในตัวอย่างนี้ การคลิกปุ่ม Step Out จะย้ายตัวดีบักออกจากฟังก์ชันที่เรียกว่า testFunc( ) และไปยังบรรทัดถัดไปของโค้ดหลังจากที่มีการเรียกใช้ฟังก์ชันนั้นครั้งแรก

คอลล์สแต็ก

หน้าต่าง Call Stack แสดงรายการฟังก์ชันที่ถูกเรียกใช้จากกันและกันตามลำดับ ตัวอย่างเช่น ฟังก์ชัน A เรียกใช้ฟังก์ชัน B ซึ่งฟังก์ชัน B เรียกใช้ฟังก์ชัน C ที่มีจุดหยุดชั่วคราวฝังอยู่ จากนั้นเมื่อการดำเนินการหยุดที่จุดหยุดชั่วคราวนั้น สแต็กจะแสดงลำดับที่แต่ละฟังก์ชันถูกเรียกใช้พร้อมทั้งแสดงตำแหน่งที่มีการเรียกใช้ ขณะดูตัวแปรท้องถิ่นในฟังก์ชัน C คุณยังสามารถสลับระหว่างฟังก์ชันต่างๆ ในสแต็กและเปลี่ยนบริบทของฟังก์ชันที่เลือกอยู่ในรายการสแต็ก และตรวจสอบการเปลี่ยนแปลงของตัวแปรท้องถิ่นเหล่านั้นได้

ในตัวอย่างนี้ คุณสามารถเห็นตำแหน่งที่คุณอยู่ในเกมเมื่อหยุดชั่วคราวที่จุดหยุดในโค้ด หากบรรทัดโค้ดปัจจุบันถูกเรียกจากฟังก์ชันที่ถูกเรียกจากภายในฟังก์ชันอื่น สแต็กการเรียกจะแสดงลำดับที่ฟังก์ชันถูกเรียกพร้อมหมายเลขบรรทัดที่เกิดการเรียก

การใช้ตัวแก้ไขข้อผิดพลาดของ Lua

คุณสามารถเข้าถึง Lua Debugger ได้ทุกครั้งที่คุณกำลังแก้ไขสคริปต์ใน Roblox Studio ในการเริ่มต้นและเพิ่ม Breakpoints ลงในโค้ดของคุณ เพียงคลิกที่ด้านซ้ายของบรรทัดโค้ดในหน้าต่างสคริปต์ที่คุณต้องการให้หยุดชั่วคราว แต่ละบรรทัดที่คุณคลิกและกำหนดให้เป็น Breakpoint จะแสดงด้วยจุดสีแดง

ทันทีที่คุณทดสอบเล่นเกมของคุณ คุณสามารถสลับตัวเลือก Breakpoint, Add Watch และ Call Stack ในเมนู View และตรวจสอบพฤติกรรมของโค้ดของคุณภายใต้หน้าต่างหลักได้อย่างง่ายดาย! หากคุณยังไม่เคยใช้ Lua Debugger มาก่อน เราขอแนะนำให้คุณลองใช้งานดู

การปรับปรุงใหม่

ขณะนี้เราได้ทบทวนคุณสมบัติหลักของ Lua Debugger แล้ว เราได้ทำการปรับปรุงและแก้ไขที่สำคัญหลายประการเมื่อไม่นานมานี้ ซึ่งรวมถึง:

  • แก้ไขปัญหาที่สคริปต์ที่ถูกต้องอาจไม่เปิดเมื่ออยู่ที่จุดหยุดหรือจากหน้าต่าง Call Stack
  • แก้ไขการแสดงเส้นปัจจุบันของ Lua Debugger
  • ข้อผิดพลาดของการโทรแบบป้องกันหรือ pcall ได้รับการตรวจจับอย่างถูกต้องแล้ว
  • เพิ่มตารางผสมที่ให้คุณดูและติดตามค่าต่างๆ ได้ คุณสามารถเลื่อนเมาส์ไปเหนือตัวแปรในตารางเพื่อดูค่าทั้งหมดได้ทันทีโดยไม่ต้องพิมพ์ออกมา
  • การปรับปรุงส่วนติดต่อผู้ใช้เล็กน้อยหลายรายการ
  • การแก้ไขต่างๆ สำหรับเครื่องมือชี้และหน้าต่างเพิ่มการเฝ้าติดตาม
    • เมื่อเลื่อนเมาส์ไปเหนือตัวแปรที่เป็นอักขระเดี่ยว จะแสดงค่าของตัวแปรได้อย่างถูกต้องแล้ว
    • ขณะนี้คุณสมบัติทั้งหมดถูกแสดงในเครื่องมือแสดงข้อมูลและหน้าต่าง Watch โดยไม่มีคุณสมบัติใดหายไป

เรามุ่งมั่นที่จะมอบเครื่องมือที่จำเป็นให้กับชุมชนนักพัฒนา Roblox ที่มีความสามารถ เราอยากทราบความคิดเห็นของคุณเกี่ยวกับวิธีที่เราสามารถพัฒนา Lua Debugger บนฟอรัมนักพัฒนาให้ดียิ่งขึ้น