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

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

  • profilebegin(label : string):()

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

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

พารามิเตอร์

message: string

บรรทัดแรกของสตริงที่ส่งคืน

level: number

จํานวนการโทร "ขึ้น" กองโทรศัพท์เพื่อกลับ

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

ส่งค่ากลับ

การติดตามสแต็กการโทรฟังก์ชันปัจจุบัน

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

พารามิเตอร์

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

ส่งค่ากลับ

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 มาตรฐานที่ให้บริการเพื่อวัตถุประสงค์ที่คล้ายกัน

พารามิเตอร์

function: function

ฟังก์ชันของกองเรียกที่ข้อมูลที่ส่งคืนควรอธิบาย

options: string

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

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

ส่งค่ากลับ

profilebegin

()

เริ่มโปรไฟล์สําหรับแท็บ MicroProfiler

พารามิเตอร์

label: string

ข้อความที่แท็บ MicroProfiler แสดง

ส่งค่ากลับ

()

profileend

()

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

ส่งค่ากลับ

()

getmemorycategory

ส่งคืนชื่อของหมวดหมู่หน่วยความจําที่ใช้งานของกระทู้ปัจจุบัน

ส่งค่ากลับ

ประเภทหน่วยความจําที่ใช้งานของกระทู้ปัจจุบัน

setmemorycategory

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

พารามิเตอร์

tag: string

ส่งค่ากลับ

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

resetmemorycategory

()

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

ส่งค่ากลับ

()

dumpcodesize

()

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

ส่งค่ากลับ

()