debug

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ให้การทำงานบางอย่างสำหรับการดีบั๊กโค้ดใน Roblox โดยไม่ต้องใช้ห้องสมุด debug ที่พบใน Lua ตามธรรมชาติ รุ่นนี้ได้รับการแซนด์บ็อกซ์อย่างหนัก

สรุป

ฟังก์ชัน

  • traceback(message : string,level : number):string

    กลับสตริงของแบบอ้างอิงที่ไม่ระบุที่อธิบายถึงค่ายุคปัจจุบัน

  • traceback(thread : coroutine,message : string,level : number):string

    กลับสตริงของแบบอ้างอิงที่ไม่ระบุที่อธิบายถึงค่ายุคปัจจุบัน

  • info(level : number,options : string):Tuple

    ข้ามทั้งหมดของคอลัมน์เรียกและส่งตัวอักษรที่ประกอบด้วยรายละเอียดระดับเรื่องที่ตรงกันของเลเวลเรื่อง

  • info(function : function,options : string):Tuple

    ข้ามทั้งหมดของคอลัมน์เรียกและส่งตัวแปรที่ประกอบด้วยรายละเอียดของคอลัมน์เรียกต้นแบบ

  • info(thread : coroutine,level : number,options : string):Tuple

    ข้ามทั้งหมดของตัวอ้างของเส้นทางเรียกและกลับสตริงที่ประกอบด้วยรายละเอียดระดับเลเวลของโคลน

  • profilebegin(label : string):void

    เริ่มต้นโปรไฟล์สำหรับแท็งกี้

  • profileend():void

    หยุดการโปรไฟล์สำหรับฉลากที่เปิดใหม่ที่สุดที่ 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()

พารามิเตอร์

message: string

สายแรกของสตริงที่กลับมา

level: number

จำนวนการโทร "ขึ้น" สถานที่เรียกเพื่อกลับมา

ค่าเริ่มต้น: 1

ส่งค่ากลับ

บันทึกการแทร็กของค่ายืนหน้าปัจจุบัน

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()

พารามิเตอร์

thread: coroutine

เป็นกระทู้ที่กลับโดย coroutine.create()

message: string

สายแรกของสตริงที่กลับมา

level: number

จำนวนการโทร "ขึ้น" สถานที่เรียกเพื่อกลับมา

ค่าเริ่มต้น: 1

ส่งค่ากลับ

บันทึกการแทร็กของค่ายืนหน้าปัจจุบัน

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 ที่ให้ประสิทธิภาพเช่นกัน

พารามิเตอร์

level: number

กำหนดระดับของคอลล์สแต็คที่ข้อมูลที่ส่งคืนควรอธิบาย มูลค่าของ 1 เป็นตัวแทนของฟังก์ชันที่เรียก debug.info() มูลค่าของ 2 เป็นตัวแทนของฟังก์ชันที่

options: string

ตัวอักษรที่อธิบายสิ่งที่ข้อมูลที่กลับมาควรระบุ มันต้องมีเฉพาะ 0 หรือ 1 ตัวอย่างของตัวอักษร slnaf เท่านั้น ซึ่งแต่ละตัวอย่างจะระบุชิ้นส่วนของข้อมูล:

  • s ( string ) — ตัวระบุต้นฟังก์ชัน เท่ากับชื่อเต็มของสคริปที่ฟังก์ชันถูกอธิบายใน
  • l ( จํานวนเงิน ) — เลขที่บรรทัดของการเรียกฟังก์ชันที่แทนที่โดย level
  • n (สตริง — ชื่อของฟังก์ชัน; อาจเป็น nil สำหรับฟังก์ชันอันไม่มีชื่อและ C ฟังก์ชันโดยไม่มีชื่อเรียกแก้บั๊กที่กำหนดไว้)
  • a (จํานวนเงิน ,ตัวแปร ) — ความสามารถของตัวแปรซึ่งอ้างถึงจํานวนเงินและว่าตัวแปรเป็นตัวแปรแบบไหน
  • 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 ที่ให้ประสิทธิภาพเช่นกัน

พารามิเตอร์

function: function

คุณสมบัติของสต็อกโทรศัพท์ที่ส่งคืนควรอธิบาย

options: string

ตัวอักษรที่อธิบายสิ่งที่ข้อมูลที่กลับมาควรระบุ มันต้องมีเฉพาะ 0 หรือ 1 ตัวอย่างของตัวอักษร slnaf เท่านั้น ซึ่งแต่ละตัวอย่างจะระบุชิ้นส่วนของข้อมูล:

  • s ( string ) — ตัวระบุต้นฟังก์ชัน เท่ากับชื่อเต็มของสคริปที่ฟังก์ชันถูกอธิบายใน
  • l ( จํานวนเงิน ) — สายที่ function ได้รับการจําแนง.
  • n (สตริง — ชื่อของฟังก์ชัน; อาจเป็น nil สำหรับฟังก์ชันอันไม่มีชื่อและ C ฟังก์ชันโดยไม่มีชื่อเรียกแก้บั๊กที่กำหนดไว้)
  • a (จํานวนเงิน ,ตัวแปร ) — ความสามารถของตัวแปรซึ่งอ้างถึงจํานวนเงินและว่าตัวแปรเป็นตัวแปรแบบไหน
  • 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 ที่ให้ประสิทธิภาพเช่นกัน

พารามิเตอร์

thread: coroutine

เป็นกระทู้ที่กลับโดย coroutine.create()

level: number

กำหนดระดับของคอลล์สแต็คที่ข้อมูลที่ส่งคืนควรอธิบาย มูลค่าของ 1 เป็นตัวแทนของฟังก์ชันที่เรียก debug.info() มูลค่าของ 2 เป็นตัวแทนของฟังก์ชันที่

options: string

ตัวอักษรที่อธิบายสิ่งที่ข้อมูลที่กลับมาควรระบุ มันต้องมีเฉพาะ 0 หรือ 1 ตัวอย่างของตัวอักษร slnaf เท่านั้น ซึ่งแต่ละตัวอย่างจะระบุชิ้นส่วนของข้อมูล:

  • s ( string ) — ตัวระบุต้นฟังก์ชัน เท่ากับชื่อเต็มของสคริปที่ฟังก์ชันถูกอธิบายใน
  • l ( จํานวนเงิน ) — เลขที่บรรทัดของการเรียกฟังก์ชันที่แทนที่โดย level
  • n (สตริง — ชื่อของฟังก์ชัน; อาจเป็น nil สำหรับฟังก์ชันอันไม่มีชื่อและ C ฟังก์ชันโดยไม่มีชื่อเรียกแก้บั๊กที่กำหนดไว้)
  • a (จํานวนเงิน ,ตัวแปร ) — ความสามารถของตัวแปรซึ่งอ้างถึงจํานวนเงินและว่าตัวแปรเป็นตัวแปรแบบไหน
  • f (ระบบการใช้งาน ) — ระบบการใช้งานที่ตรวจสอบ

ส่งค่ากลับ

profilebegin

void

เริ่มต้นโปรไฟล์สำหรับป้ายชื่อ MicroProfiler

พารามิเตอร์

label: string

ข้อความที่ป้ายชื่อนี้ MicroProfiler แสดง

ส่งค่ากลับ

void

profileend

void

หยุดโปรไฟล์สำหรับฉลาก MicroProfiler ล่าสุดที่เปิดกว้าง debug.profilebegin()

ส่งค่ากลับ

void

getmemorycategory

รีเทรียมชื่อของหมวดหมู่หน่วยความจำที่เปิดใช้งานของธนายคตามที่กำหนด

ส่งค่ากลับ

หมวดหมู่หน่วยความจำที่ใช้งานอยู่ของเส้นด้านล่าง

setmemorycategory

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

พารามิเตอร์

tag: string

ส่งค่ากลับ

หมวดหมู่หน่วยความจำปัจจุบันของเส้นกระทู้

resetmemorycategory

void

รีเซ็ตแท็กที่กำหนดโดย debug.setmemorycategory() เป็นค่าที่กำหนดโดยอัตโนมัติ (โดยปกติคือชื่อสคริปต์)

ส่งค่ากลับ

void

dumpcodesize

void

แสดงตารางขนาดของโค้ดเริ่มต้นของระบบและสคริปต์แต่ละรายการ ระบบนี้สามารถใช้ได้ในแถบคําสั่งในสตูดิโอเท่านั้น รายละเอียดเพิ่มเติมสามารถพบได้ที่หน้า การเก็บข้อมูลโค้ดเริ่มต้น

ส่งค่ากลับ

void