debug

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Menyediakan beberapa fungsi dasar untuk mendekompresi kode di Roblox. Berbeda dengan perpustakaan debug yang ditemukan di Lua secara natif, versi ini telah sangat sandboxed.

Rangkuman

Fungsi

Fungsi

traceback

Mengembalikan jejak fungsi saat ini sebagai string; dengan kata lain, deskripsi dari fungsi yang telah dipanggil sejauh ini. Selama debug, ini bersikap seperti jejak Stack Error tetapi tidak menghentikan eksekusi script.

Paraметri level menentukan tingkat tumpukan panggilan yang akan dipertimbangkan, dengan 1 menjadi panggilan dari debug.traceback() sendiri, 1>21> menjadi panggilan fungsi yang memanggil 4>Library. debug. traceback4> ,

Catat bahwa fungsi ini sering akan mengembalikan hasil yang tidak akurat (dibandingkan dengan kode sumber asli) dan bahwa format return traceback dapat berubah kapan saja. Anda seharusnya tidak Parsing nilai kembali untuk informasi spesifik seperti nama skrip atau nomor baris.

Contoh berikut mencakup panggilan fungsi berurutan; fnB() dinyatakan, dan memanggil fnA() yang kemudian memanggil debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Panggil fungsi dlB() untuk memulai traceback
fnB()

Parameter

message: string

Baris pertama dari string yang dikembalikan.

level: number

Jumlah panggilan "naik" tumpukan panggilan untuk dikembalikan.

Nilai Default: 1

Memberikan nilai

Traceback dari fungsi panggilan stack saat ini.

traceback

Mengembalikan jejak fungsi saat ini sebagai string; dengan kata lain, deskripsi dari fungsi yang telah dipanggil sejauh ini. Selama debug, ini bersikap seperti jejak Stack Error tetapi tidak menghentikan eksekusi script.

Paraметri level menentukan tingkat tumpukan panggilan yang akan dipertimbangkan, dengan 1 menjadi panggilan dari debug.traceback() sendiri, 1>21> menjadi panggilan fungsi yang memanggil 4>Library. debug. traceback4> ,

Catat bahwa fungsi ini sering akan mengembalikan hasil yang tidak akurat (dibandingkan dengan kode sumber asli) dan bahwa format return traceback dapat berubah kapan saja. Anda seharusnya tidak Parsing nilai kembali untuk informasi spesifik seperti nama skrip atau nomor baris.

Contoh berikut mencakup panggilan fungsi berurutan; fnB() dinyatakan, dan memanggil fnA() yang kemudian memanggil debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Panggil fungsi dlB() untuk memulai traceback
fnB()

Parameter

thread: coroutine

Sebuah thread yang dikembalikan oleh coroutine.create() .

message: string

Baris pertama dari string yang dikembalikan.

level: number

Jumlah panggilan "naik" tumpukan panggilan untuk dikembalikan.

Nilai Default: 1

Memberikan nilai

Traceback dari fungsi panggilan stack saat ini.

info

Mengizinkan inspeksi programatik pada tumpukan panggilan. Fungsi ini berbeda dari debug.traceback() di mana itu menjamin format data yang dikembalikan. Ini berguna untuk tujuan general logging dan filtering serta untuk mengirim data ke sistem yang mengharapkan masukan berstruktur, seperti agregasi gagal.


local function fnA()
-- Output identifikasi sumber ("s") dan baris ("l") di tingkat 1 dan 2
print(debug.info(1, "sl")) --> funnA() 3
print(debug.info(2, "sl")) --> funnA() 7
end
fnA()

Catat bahwa fungsi ini mirip dengan debug.getinfo, bagian yang tidak tersedia dari perpustakaan Lua standar yang melayani tujuan serupa.

Parameter

level: number

Menentukan pada tingkat mana dari tumpukan panggilan informasi yang dikembalikan harus dijelaskan. Sebuah nilai dari 1 mewakili fungsi yang memanggil fungsi itu, dan seterusnya.

options: string

Sebuah string yang menggambarkan apa yang harus diwakili oleh informasi yang dikembalikan. Ini hanya boleh berisi 0 atau 1 instans karakter slnaf , masing-masing mewakili potongan informasi:

  • s ( string ) — ID sumber fungsi, sama dengan nama penuh skrip di mana fungsi itu didefinisikan.
  • l ( nomor ) — Nomor garis fungsi yang diwakili oleh level .
  • n (string ) — Nama fungsi; mungkin nil untuk fungsi anonim dan C fungsi tanpa nama debug yang ditetapkan.
  • a ( nomor , boolean ) — Arity fungsi, yang mengacu pada jumlah parameter dan apakah fungsi variadic.
  • f ( fungsi ) — Fungsi yang diinspeksi.

Memberikan nilai

info

Mengizinkan inspeksi programatik pada tumpukan panggilan. Fungsi ini berbeda dari debug.traceback() di mana itu menjamin format data yang dikembalikan. Ini berguna untuk tujuan general logging dan filtering serta untuk mengirim data ke sistem yang mengharapkan masukan berstruktur, seperti agregasi gagal.


local function fnA()
end
local function fnB()
end
-- Output line ("l"), name ("n"), dan identifier ("f") untuk kedua fonA() dan fonB()
print(debug.info(fnA, "lnf")) --> 1 fungsi fnA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Catat bahwa fungsi ini mirip dengan debug.getinfo, bagian yang tidak tersedia dari perpustakaan Lua standar yang melayani tujuan serupa.

Parameter

function: function

Fungsi dari tumpukan panggilan yang dikembalikan harus menggambarkan.

options: string

Sebuah string yang menggambarkan apa yang harus diwakili oleh informasi yang dikembalikan. Ini hanya boleh berisi 0 atau 1 instans karakter slnaf , masing-masing mewakili potongan informasi:

  • s ( string ) — ID sumber fungsi, sama dengan nama penuh skrip di mana fungsi itu didefinisikan.
  • l ( nomor ) — Baris yang function ditentukan.
  • n (string ) — Nama fungsi; mungkin nil untuk fungsi anonim dan C fungsi tanpa nama debug yang ditetapkan.
  • a ( nomor , boolean ) — Arity fungsi, yang mengacu pada jumlah parameter dan apakah fungsi variadic.
  • f ( fungsi ) — Fungsi yang diinspeksi.

Memberikan nilai

info

Mengizinkan inspeksi programatik pada tumpukan panggilan. Fungsi ini berbeda dari debug.traceback() di mana itu menjamin format data yang dikembalikan. Ini berguna untuk tujuan general logging dan filtering serta untuk mengirim data ke sistem yang mengharapkan masukan berstruktur, seperti agregasi gagal.


local function fnA()
-- Output identifikasi sumber ("s") dan baris ("l") di tingkat 1 dan 2
print(debug.info(1, "sl")) --> funnA() 3
print(debug.info(2, "sl")) --> funnA() 7
end
fnA()

Catat bahwa fungsi ini mirip dengan debug.getinfo, bagian yang tidak tersedia dari perpustakaan Lua standar yang melayani tujuan serupa.

Parameter

thread: coroutine

Sebuah thread yang dikembalikan oleh coroutine.create() .

level: number

Menentukan pada tingkat mana dari tumpukan panggilan informasi yang dikembalikan harus dijelaskan. Sebuah nilai dari 1 mewakili fungsi yang memanggil fungsi itu, dan seterusnya.

options: string

Sebuah string yang menggambarkan apa yang harus diwakili oleh informasi yang dikembalikan. Ini hanya boleh berisi 0 atau 1 instans karakter slnaf , masing-masing mewakili potongan informasi:

  • s ( string ) — ID sumber fungsi, sama dengan nama penuh skrip di mana fungsi itu didefinisikan.
  • l ( nomor ) — Nomor garis fungsi yang diwakili oleh level .
  • n (string ) — Nama fungsi; mungkin nil untuk fungsi anonim dan C fungsi tanpa nama debug yang ditetapkan.
  • a ( nomor , boolean ) — Arity fungsi, yang mengacu pada jumlah parameter dan apakah fungsi variadic.
  • f ( fungsi ) — Fungsi yang diinspeksi.

Memberikan nilai

profilebegin

void

Memulai profil untuk label MicroProfiler.

Parameter

label: string

Teks yang ditunjukkan label ini MicroProfiler .

Memberikan nilai

void

profileend

void

Menghentikan profil untuk label MicroProfiler terbaru yang debug.profilebegin() dibuka.

Memberikan nilai

void

getmemorycategory

Mengembalikan nama kategori memori aktif thread saat ini.

Memberikan nilai

Kategori memori aktif kategorithread saat ini.

setmemorycategory

Mengidentifikasi nama tag khusus untuk kategori memori thread saat ini di Developer Console . Berguna untuk menganalisis penggunaan memori dari beberapa thread di script yang sama yang seharusnya dikumpulkan bersama-sama di bawah nama tag/nama yang sama. Mengembalikan nama kategori memori saat ini.

Parameter

tag: string

Memberikan nilai

Kategori memori sebelumnya dari thread saat ini.

resetmemorycategory

void

Atur ulang label yang ditetapkan oleh debug.setmemorycategory() ke nilai yang ditetapkan secara otomatis ( biasanya, nama script).

Memberikan nilai

void

dumpcodesize

void

Menampilkan tabel ukuran kode natif fungsi dan skrip individual. Fungsi ini hanya tersedia di Command Bar di Studio. Lebih banyak rincian dapat ditemukan di halaman Pembuatan Kode Natif.

Memberikan nilai

void