debug

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Cung cấp một vài chức năng cơ bản để gỡ lỗi mã trong Roblox.Không giống như thư viện debug được tìm thấy trong Lua mặc định, phiên bản này đã bị hạn chế nghiêm ngặt.

Tóm Tắt

Chức Năng

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

    Trả về một chuỗi định dạng không xác định mô tả chồng gọi chức năng hiện tại.

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

    Trả về một chuỗi định dạng không xác định mô tả chồng gọi chức năng hiện tại.

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

    Xuyên suốt toàn bộ chồng các luồng hiện tại và trả về một chuỗi chứa chồng gọi của cấp độ mục tiêu chi tiết.

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

    Xuyên suốt toàn bộ chồng các tiến trình hiện tại và trả về một chuỗi chứa chồng gọi của chi tiết chức năng mục tiêu.

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

    Xuyên suốt toàn bộ chồng các tiến trình mục tiêu và trả về một chuỗi chứa chồng gọi của các chi tiết cấp độ mục tiêu.

  • profilebegin(label : string):()

    Bắt đầu phân tích cho một nhãn.

  • Dừng việc phân tích cho nhãn mới nhất mà debug.profilebegin() đã mở.

  • Trả về tên của thành phần bộ nhớ hoạt động của luồng hiện tại.

  • Gán một thẻ tùy chỉnh cho danh thể loạibộ nhớ của luồng hiện tại.

  • Đặt lại thẻ được gán bởi debug.setmemorycategory() đến giá trị được gán tự động (thông thường, tên của kịch bản).

  • Hiển thị một bảng kích thước mã bản địa của các chức năng và kịch bản riêng lẻ.

Chức Năng

traceback

Trả về một chuỗi dấu đi lại của chức năng gọi hiện tại như một chuỗi; theo cách khác, một mô tả về các chức năng đã được gọi cho đến thời điểm này.Trong quá trình gỡ lỗi, nó hành xử giống như một đường dẫn theo dấu lỗi nhưng không ngăn chặn việc thực thi của kịch bản.

Tham số level định cấp độ cuộc gọi nào cần xem xét, với 1 được gọi là cuộc gọi của debug.traceback() chính, 2 được gọi là cuộc gọi của chức năng gọi debug.traceback() , và như vậy.Xem mẫu mã code bên dưới để có một ví dụ về cuộc gọi chức năng tuần tự.

Lưu ý rằng chức năng này thường trả về kết quả không chính xác (so với mã nguồn ban đầu) và định dạng của traceback trả về có thể thay đổi bất cứ lúc nào.Bạn không nên không phân tích giá trị trả về cho thông tin cụ thể như tên của tập lệnh hoặc số dòng.

Ví dụ sau bao gồm các cuộc gọi chức năng tuần tự; fnB() được gọi, và nó gọi fnA() mà sau đó gọi debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Gọi chức năng fnB() để bắt đầu truy xuất
fnB()

Tham Số

message: string

Dòng đầu tiên của chuỗi trả về.

level: number

Số lượng cuộc gọi "lên" chồng cuộc gọi để trả lại.

Giá Trị Mặc Định: 1

Lợi Nhuận

Xác nhận chuỗi cuộc gọi chức năng hiện tại.

traceback

Trả về một chuỗi dấu đi lại của chức năng gọi hiện tại như một chuỗi; theo cách khác, một mô tả về các chức năng đã được gọi cho đến thời điểm này.Trong quá trình gỡ lỗi, nó hành xử giống như một đường dẫn theo dấu lỗi nhưng không ngăn chặn việc thực thi của kịch bản.

Tham số level định cấp độ cuộc gọi nào cần xem xét, với 1 được gọi là cuộc gọi của debug.traceback() chính, 2 được gọi là cuộc gọi của chức năng gọi debug.traceback() , và như vậy.Xem mẫu mã code bên dưới để có một ví dụ về cuộc gọi chức năng tuần tự.

Lưu ý rằng chức năng này thường trả về kết quả không chính xác (so với mã nguồn ban đầu) và định dạng của traceback trả về có thể thay đổi bất cứ lúc nào.Bạn không nên không phân tích giá trị trả về cho thông tin cụ thể như tên của tập lệnh hoặc số dòng.

Ví dụ sau bao gồm các cuộc gọi chức năng tuần tự; fnB() được gọi, và nó gọi fnA() mà sau đó gọi debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Gọi chức năng fnB() để bắt đầu truy xuất
fnB()

Tham Số

thread: coroutine

Một luồng như được trả lại bởi coroutine.create() .

message: string

Dòng đầu tiên của chuỗi trả về.

level: number

Số lượng cuộc gọi "lên" chồng cuộc gọi để trả lại.

Giá Trị Mặc Định: 1

Lợi Nhuận

Xác nhận chuỗi cuộc gọi chức năng hiện tại.

info

Cho phép kiểm tra chương trình của chồng cuộc gọi.Chức năng này khác với debug.traceback() vì nó đảm bảo định dạng của dữ liệu nó trả về.Điều này hữu ích cho các mục đích ghi nhận và lọc chung cũng như cho việc gửi dữ liệu đến các hệ thống mong đợi nhập dữ liệu có cấu trúc, chẳng hạn như tổng hợp sự cố.


local function fnA()
-- Nhận dạng nguồn xuất ("s") và dòng ("l") tại cấp 1 và 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Lưu ý rằng chức năng này tương tự với debug.getinfo, một phần không có sẵn của thư viện Lua tiêu chuẩn phục vụ mục đích tương tự.

Tham Số

level: number

Xác định ở cấp độ nào của chồng gọi thông tin được trả về phải mô tả.Một giá trị của 1 đại diện cho chức năng đang gọi debug.info() , một giá trị của 2 đại diện cho chức năng đã gọi chức năng đó, và như vậy.

options: string

Một chuỗi mô tả thông tin trả về nên đại diện cho điều gì.Nó chỉ có thể chứa 0 hoặc 1 ví dụ về các nhân vật slnaf, mỗi ví dụ đại diện cho một phần thông tin:

  • s ( chuỗi ) — Định danh nguồn của chức năng, tương đương với tên đầy đủ của kịch bản chức năng được định nghĩa.
  • l ( số ) — Số dòng của cuộc gọi chức năng được đại diện bởi level .
  • n ( chuỗi ) — Tên của chức năng; có thể là nil cho các chức năng vô danh và C chức năng không có tên gỡ lỗi được gán.
  • a ( số lượng , boolean ) — Số phần tử của chức năng, đề cập đến số lượng tham số và xem chức năng có biến thể hay không.
  • f ( chức năng ) — Chức năng đã được kiểm tra.

Lợi Nhuận

info

Cho phép kiểm tra chương trình của chồng cuộc gọi.Chức năng này khác với debug.traceback() vì nó đảm bảo định dạng của dữ liệu nó trả về.Điều này hữu ích cho các mục đích ghi nhận và lọc chung cũng như cho việc gửi dữ liệu đến các hệ thống mong đợi nhập dữ liệu có cấu trúc, chẳng hạn như tổng hợp sự cố.


local function fnA()
end
local function fnB()
end
-- Dòng ra ("l"), tên ("n") và nhận dạng ("f") cho cả fnA() và fnB()
print(debug.info(fnA, "lnf")) --> 1 chức năng fnA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Lưu ý rằng chức năng này tương tự với debug.getinfo, một phần không có sẵn của thư viện Lua tiêu chuẩn phục vụ mục đích tương tự.

Tham Số

function: function

Chức năng của chồng cuộc gọi mà thông tin được trả về phải mô tả.

options: string

Một chuỗi mô tả thông tin trả về nên đại diện cho điều gì.Nó chỉ có thể chứa 0 hoặc 1 ví dụ về các nhân vật slnaf, mỗi ví dụ đại diện cho một phần thông tin:

  • s ( chuỗi ) — Định danh nguồn của chức năng, tương đương với tên đầy đủ của kịch bản chức năng được định nghĩa.
  • l ( số ) — Dòng được định nghĩa trên function .
  • n ( chuỗi ) — Tên của chức năng; có thể là nil cho các chức năng vô danh và C chức năng không có tên gỡ lỗi được gán.
  • a ( số lượng , boolean ) — Số phần tử của chức năng, đề cập đến số lượng tham số và xem chức năng có biến thể hay không.
  • f ( chức năng ) — Chức năng đã được kiểm tra.

Lợi Nhuận

info

Cho phép kiểm tra chương trình của chồng cuộc gọi.Chức năng này khác với debug.traceback() vì nó đảm bảo định dạng của dữ liệu nó trả về.Điều này hữu ích cho các mục đích ghi nhận và lọc chung cũng như cho việc gửi dữ liệu đến các hệ thống mong đợi nhập dữ liệu có cấu trúc, chẳng hạn như tổng hợp sự cố.


local function fnA()
-- Nhận dạng nguồn xuất ("s") và dòng ("l") tại cấp 1 và 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Lưu ý rằng chức năng này tương tự với debug.getinfo, một phần không có sẵn của thư viện Lua tiêu chuẩn phục vụ mục đích tương tự.

Tham Số

thread: coroutine

Một luồng như được trả lại bởi coroutine.create() .

level: number

Xác định ở cấp độ nào của chồng gọi thông tin được trả về phải mô tả.Một giá trị của 1 đại diện cho chức năng đang gọi debug.info() , một giá trị của 2 đại diện cho chức năng đã gọi chức năng đó, và như vậy.

options: string

Một chuỗi mô tả thông tin trả về nên đại diện cho điều gì.Nó chỉ có thể chứa 0 hoặc 1 ví dụ về các nhân vật slnaf, mỗi ví dụ đại diện cho một phần thông tin:

  • s ( chuỗi ) — Định danh nguồn của chức năng, tương đương với tên đầy đủ của kịch bản chức năng được định nghĩa.
  • l ( số ) — Số dòng của cuộc gọi chức năng được đại diện bởi level .
  • n ( chuỗi ) — Tên của chức năng; có thể là nil cho các chức năng vô danh và C chức năng không có tên gỡ lỗi được gán.
  • a ( số lượng , boolean ) — Số phần tử của chức năng, đề cập đến số lượng tham số và xem chức năng có biến thể hay không.
  • f ( chức năng ) — Chức năng đã được kiểm tra.

Lợi Nhuận

profilebegin

()

Bắt đầu phân tích cho một nhãn MicroProfiler.

Tham Số

label: string

Văn bản mà nhãn MicroProfiler hiển thị.

Lợi Nhuận

()

profileend

()

Dừng việc phân tích cho nhãn MicroProfiler mới nhất đã được mở.

Lợi Nhuận

()

getmemorycategory

Trả về tên của thành phần bộ nhớ hoạt động của luồng hiện tại.

Lợi Nhuận

Danh thể loạibộ nhớ hoạt động của luồng hiện tại.

setmemorycategory

Gán một tên thẻ tùy chỉnh cho danh mục bộ nhớ của luồng hiện tại trong Bảng điều khiển Nhà phát triển.Hữu ích để phân tích sử dụng bộ nhớ của nhiều luồng trong cùng một tập lệnh mà nếu không sẽ được nhóm lại dưới cùng một thẻ/tên.Trả về tên của danh mục bộ nhớ trước của luồng hiện thể loại.

Tham Số

tag: string

Lợi Nhuận

Danh thể loạibộ nhớ trước của tiền thớt hiện tại.

resetmemorycategory

()

Đặt lại thẻ được gán bởi debug.setmemorycategory() đến giá trị được gán tự động (thông thường, tên của kịch bản).

Lợi Nhuận

()

dumpcodesize

()

Hiển thị một bảng kích thước mã bản địa của các chức năng và kịch bản riêng lẻ.Chức năng này chỉ có sẵn trong Thanh lệnh trong Studio.Thêm chi tiết có thể được tìm thấy trên trang Tạo mã bản địa.

Lợi Nhuận

()