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