debug
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
ให้ฟังก์ชันพื้นฐานสองสามอย่างสำหรับการแก้ไขข้อผิดพลาดในโค้ดใน Robloxไม่เหมือนกับไลบรารี debug ที่พบใน Lua โดยตรง รุ่นนี้ถูกจำกัดอย่างหนัก
สรุป
ฟังก์ชัน
ส่งคืนสตริงรูปแบบที่ไม่มีการกำหนดที่อธิบายกองเรียกฟังก์ชันปัจจุบัน
ส่งคืนสตริงรูปแบบที่ไม่มีการกำหนดที่อธิบายกองเรียกฟังก์ชันปัจจุบัน
ข้ามทั้งหมดของสแต็กของเธรดปัจจุบันและ返回สตริงที่มีสแต็กการโทรของรายละเอียดระดับเป้าหมาย
ข้ามทั้งหมดของสแต็กของกระทู้ปัจจุบันและส่งคืนสตริงที่มีรายละเอียดการเรียกของฟังก์ชันเป้าหมาย
ข้ามทั้งหมดของสแต็กของธread เป้าหมายและส่งคืนสตริงที่มีสแต็กการโทรของรายละเอียดระดับเป้าหมาย
เริ่มโปรไฟล์สําหรับป้ายชื่อ
หยุดการโปรไฟล์สำหรับฉลากล่าสุดที่เปิด debug.profilebegin()
ส่งคืนชื่อของหมวดหมู่หน่วยความจําที่ใช้งานของกระทู้ปัจจุบัน
กำหนดแท็กที่กําหนดเองให้กับหมวดหมู่หน่วยความจําของกระทู้ปัจจุบัน
รีเซ็ตแท็กที่กําหนดโดย debug.setmemorycategory() ให้กับมูลค่าที่กําหนดโดยอัตโนมัติ (โดยปกติคือชื่อสคริปต์)
แสดงตารางขนาดโค้ดเดิมของฟังก์ชันและสคริปต์แต่ละรายการ
ฟังก์ชัน
traceback
ส่งคืนเส้นทางการเรียกฟังก์ชันปัจจุบันเป็นเส้นทางการเรียกกลับเป็นข้อความ; คือคำอธิบายของฟังก์ชันที่ได้รับการเรียกจนถึงจุดนี้ในระหว่างการดีบัก สิ่งนี้จะทำงานเหมือนการติดตามข้อผิดพลาด แต่ไม่หยุดการดำเนินการของสคริปต์
พารามิเตอร์ level ระบุระดับการเรียกของสแต็กที่จะพิจารณาโดยมี 1 เป็นการโทรของ debug.traceback() ตัวเอง, 2 เป็นการโทรของฟังก์ชันที่เรียก debug.traceback() และอื่นๆดูตัวอย่างโค้ดด้านล่างสำหรับตัวอย่างการโทรฟังก์ชันแบบต่อเนื่อง
โปรดทราบว่าฟังก์ชันนี้มักจะส่งผลลัพธ์ที่ไม่ถูกต้อง (เมื่อเทียบกับรหัสที่มาเดิม) และรูปแบบของการติดตามที่ส่งกลับอาจเปลี่ยนแปลงได้ตลอดเวลาคุณควร ไม่ วิเคราะห์ค่าการ返回สำหรับข้อมูลเฉพาะเช่นชื่อสคริปต์หรือหมายเลขบรรทัด
ตัวอย่างต่อไปนี้รวมถึงการเรียกฟังก์ชันแบบต่อเนื่อง; fnB() ถูกเรียก และมันเรียก fnA() ซึ่งจากนั้นจะเรียก debug.traceback()
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- เรียกฟังก์ชัน fnB() เพื่อเริ่มติดตามกลับ
fnB()
พารามิเตอร์
ส่งค่ากลับ
การติดตามสแต็กการโทรฟังก์ชันปัจจุบัน
traceback
ส่งคืนเส้นทางการเรียกฟังก์ชันปัจจุบันเป็นเส้นทางการเรียกกลับเป็นข้อความ; คือคำอธิบายของฟังก์ชันที่ได้รับการเรียกจนถึงจุดนี้ในระหว่างการดีบัก สิ่งนี้จะทำงานเหมือนการติดตามข้อผิดพลาด แต่ไม่หยุดการดำเนินการของสคริปต์
พารามิเตอร์ level ระบุระดับการเรียกของสแต็กที่จะพิจารณาโดยมี 1 เป็นการโทรของ debug.traceback() ตัวเอง, 2 เป็นการโทรของฟังก์ชันที่เรียก debug.traceback() และอื่นๆดูตัวอย่างโค้ดด้านล่างสำหรับตัวอย่างการโทรฟังก์ชันแบบต่อเนื่อง
โปรดทราบว่าฟังก์ชันนี้มักจะส่งผลลัพธ์ที่ไม่ถูกต้อง (เมื่อเทียบกับรหัสที่มาเดิม) และรูปแบบของการติดตามที่ส่งกลับอาจเปลี่ยนแปลงได้ตลอดเวลาคุณควร ไม่ วิเคราะห์ค่าการ返回สำหรับข้อมูลเฉพาะเช่นชื่อสคริปต์หรือหมายเลขบรรทัด
ตัวอย่างต่อไปนี้รวมถึงการเรียกฟังก์ชันแบบต่อเนื่อง; fnB() ถูกเรียก และมันเรียก fnA() ซึ่งจากนั้นจะเรียก debug.traceback()
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- เรียกฟังก์ชัน fnB() เพื่อเริ่มติดตามกลับ
fnB()
พารามิเตอร์
กระทู้ที่ส่งคืนโดย coroutine.create() .
บรรทัดแรกของสตริงที่ส่งคืน
จํานวนการโทร "ขึ้น" กองโทรศัพท์เพื่อกลับ
ส่งค่ากลับ
การติดตามสแต็กการโทรฟังก์ชันปัจจุบัน
info
อนุญาตให้ตรวจสอบโปรแกรมของกองเรียกได้ฟังก์ชันนี้แตกต่างจาก debug.traceback() ในที่มันรับประกันรูปแบบของข้อมูลที่มันส่งคืนนี่มีประโยชน์สำหรับวัตถุประสงค์ในการบันทึกและการกรองทั่วไปเช่นเดียวกับส่งข้อมูลไปยังระบบที่คาดว่าจะมีการใส่ข้อมูลโครงสร้าง เช่น การรวบรวมอุบัติเหตุ
local function fnA()
-- ตัวระบุที่เป็นแหล่งออก ("s") และบรรทัด ("l") ในระดับ 1 และ 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
โปรดทราบว่าฟังก์ชันนี้คล้ายกับ debug.getinfo ส่วนที่ไม่สามารถใช้งานได้ของไลบรารี Lua มาตรฐานที่ให้บริการเพื่อวัตถุประสงค์ที่คล้ายกัน
พารามิเตอร์
กำหนดที่ระดับใดของสแต็กการโทรที่ข้อมูลที่ส่งคืนควรอธิบายค่าของ 1 แทนฟังก์ชันที่เรียก debug.info() ค่าของ 2 แทนฟังก์ชันที่เรียกฟังก์ชันนั้น และอื่นๆ
สตริงที่อธิบายถึงสิ่งที่ข้อมูลที่คืนควรแทนที่มันต้องมีเฉพาะ 0 หรือ 1 ตัวอย่างของตัวอักษร slnaf แต่ละตัวแทนข้อมูลชิ้นหนึ่ง:
ส่งค่ากลับ
info
อนุญาตให้ตรวจสอบโปรแกรมของกองเรียกได้ฟังก์ชันนี้แตกต่างจาก debug.traceback() ในที่มันรับประกันรูปแบบของข้อมูลที่มันส่งคืนนี่มีประโยชน์สำหรับวัตถุประสงค์ในการบันทึกและการกรองทั่วไปเช่นเดียวกับส่งข้อมูลไปยังระบบที่คาดว่าจะมีการใส่ข้อมูลโครงสร้าง เช่น การรวบรวมอุบัติเหตุ
local function fnA()
end
local function fnB()
end
-- เส้นออก ("l"), ชื่อ ("n"), และตัวระบุ ("f") สำหรับ fnA() และ fnB()
print(debug.info(fnA, "lnf")) --> ฟังก์ชัน fnA 1: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2
โปรดทราบว่าฟังก์ชันนี้คล้ายกับ debug.getinfo ส่วนที่ไม่สามารถใช้งานได้ของไลบรารี Lua มาตรฐานที่ให้บริการเพื่อวัตถุประสงค์ที่คล้ายกัน
พารามิเตอร์
ฟังก์ชันของกองเรียกที่ข้อมูลที่ส่งคืนควรอธิบาย
สตริงที่อธิบายถึงสิ่งที่ข้อมูลที่คืนควรแทนที่มันต้องมีเฉพาะ 0 หรือ 1 ตัวอย่างของตัวอักษร slnaf แต่ละตัวแทนข้อมูลชิ้นหนึ่ง:
ส่งค่ากลับ
info
อนุญาตให้ตรวจสอบโปรแกรมของกองเรียกได้ฟังก์ชันนี้แตกต่างจาก debug.traceback() ในที่มันรับประกันรูปแบบของข้อมูลที่มันส่งคืนนี่มีประโยชน์สำหรับวัตถุประสงค์ในการบันทึกและการกรองทั่วไปเช่นเดียวกับส่งข้อมูลไปยังระบบที่คาดว่าจะมีการใส่ข้อมูลโครงสร้าง เช่น การรวบรวมอุบัติเหตุ
local function fnA()
-- ตัวระบุที่เป็นแหล่งออก ("s") และบรรทัด ("l") ในระดับ 1 และ 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
โปรดทราบว่าฟังก์ชันนี้คล้ายกับ debug.getinfo ส่วนที่ไม่สามารถใช้งานได้ของไลบรารี Lua มาตรฐานที่ให้บริการเพื่อวัตถุประสงค์ที่คล้ายกัน
พารามิเตอร์
กระทู้ที่ส่งคืนโดย coroutine.create() .
กำหนดที่ระดับใดของสแต็กการโทรที่ข้อมูลที่ส่งคืนควรอธิบายค่าของ 1 แทนฟังก์ชันที่เรียก debug.info() ค่าของ 2 แทนฟังก์ชันที่เรียกฟังก์ชันนั้น และอื่นๆ
สตริงที่อธิบายถึงสิ่งที่ข้อมูลที่คืนควรแทนที่มันต้องมีเฉพาะ 0 หรือ 1 ตัวอย่างของตัวอักษร slnaf แต่ละตัวแทนข้อมูลชิ้นหนึ่ง:
ส่งค่ากลับ
profilebegin
เริ่มโปรไฟล์สําหรับแท็บ MicroProfiler
พารามิเตอร์
ข้อความที่แท็บ MicroProfiler แสดง
ส่งค่ากลับ
profileend
หยุดการจัดทำโปรไฟล์สำหรับฉลาก MicroProfiler ล่าสุดที่เปิด debug.profilebegin()
ส่งค่ากลับ
setmemorycategory
กำหนดชื่อแท็กที่กําหนดเองให้กับหมวดหมู่หน่วยความจําปัจจุบันของกระทู้ใน คอนโซลนักพัฒนามีประโยชน์สำหรับการวิเคราะห์การใช้หน่วยความจําของหลายกระทู้ในสคริปต์เดียวซึ่งจะแยกออกจากกันภายใต้แท็ก/ชื่อเดียวกันส่งคืนชื่อของหมวดหมู่หน่วยความจําก่อนหน้าของกระทู้ปัจจุบัน
พารามิเตอร์
ส่งค่ากลับ
หมวดหมู่หน่วยความจําก่อนหน้าของกระทู้ปัจจุบัน
resetmemorycategory
รีเซ็ตแท็กที่กําหนดโดย debug.setmemorycategory() ให้กับมูลค่าที่กําหนดโดยอัตโนมัติ (โดยปกติคือชื่อสคริปต์)
ส่งค่ากลับ
dumpcodesize
แสดงตารางขนาดโค้ดเดิมของฟังก์ชันและสคริปต์แต่ละรายการฟังก์ชันนี้ใช้ได้เฉพาะในแถบคําสั่งใน Studio เท่านั้นรายละเอียดเพิ่มเติมสามารถพบได้ในหน้า การสร้างโค้ดเดิม