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.

Memberikan beberapa fungsi dasar untuk mem debug kode di Roblox.Tidak seperti perpustakaan debug yang ditemukan di Lua secara native, versi ini telah diberi sandbox berat.

Rangkuman

Fungsi

Fungsi

traceback

Kembalikan jejak panggilan fungsi saat ini sebagai string; dengan kata lain, deskripsi fungsi yang telah dipanggil sampai saat ini.Selama debugging, ini berperilaku seperti jejak tumpukan kesalahan tetapi tidak menghentikan eksekusi skrip.

Parameter level menypesifikasi tingkat panggilan apa yang harus dipertimbangkan, dengan 1 menjadi panggilan dari debug.traceback() sendiri, 2 menjadi panggilan fungsi yang memanggil debug.traceback() , dan seterusnya.Lihat contoh kode di bawah ini untuk contoh panggilan fungsi berurutan.

Perhatikan bahwa fungsi ini sering kali akan mengembalikan hasil yang tidak akurat (dibandingkan dengan kode sumber asli) dan bahwa format jejak balik yang dikembalikan dapat berubah kapan saja.Anda harus tidak menganalisis nilai pengembalian untuk informasi spesifik seperti nama skrip atau nomor baris.

Contoh berikut termasuk panggilan fungsi berurutan; fnB() dipanggil, 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 fnB() untuk memulai pelacakan ulang
fnB()

Parameter

message: string

Baris pertama dari string yang dikembalikan.

level: number

Jumlah panggilan "naik" tumpukan panggilan untuk dikembalikan.

Nilai Default: 1

Memberikan nilai

Pelacakan tumpukan panggilan fungsi saat ini.

traceback

Kembalikan jejak panggilan fungsi saat ini sebagai string; dengan kata lain, deskripsi fungsi yang telah dipanggil sampai saat ini.Selama debugging, ini berperilaku seperti jejak tumpukan kesalahan tetapi tidak menghentikan eksekusi skrip.

Parameter level menypesifikasi tingkat panggilan apa yang harus dipertimbangkan, dengan 1 menjadi panggilan dari debug.traceback() sendiri, 2 menjadi panggilan fungsi yang memanggil debug.traceback() , dan seterusnya.Lihat contoh kode di bawah ini untuk contoh panggilan fungsi berurutan.

Perhatikan bahwa fungsi ini sering kali akan mengembalikan hasil yang tidak akurat (dibandingkan dengan kode sumber asli) dan bahwa format jejak balik yang dikembalikan dapat berubah kapan saja.Anda harus tidak menganalisis nilai pengembalian untuk informasi spesifik seperti nama skrip atau nomor baris.

Contoh berikut termasuk panggilan fungsi berurutan; fnB() dipanggil, 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 fnB() untuk memulai pelacakan ulang
fnB()

Parameter

thread: coroutine

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

Pelacakan tumpukan panggilan fungsi saat ini.

info

Memungkinkan inspeksi programatik dari tumpukan panggilan.Fungsi ini berbeda dari debug.traceback() dalam hal menjamin format data yang dikembalikan.Ini berguna untuk tujuan pencatatan dan penyaringan umum serta untuk mengirim data ke sistem yang mengharapkan input terstruktur, seperti agregasi kecelakaan.


local function fnA()
-- Pengidentifikasi sumber output ("s") dan baris ("l") pada tingkat 1 dan 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

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

Parameter

level: number

Menentukan di tingkat apa dari tumpukan panggilan informasi yang dikembalikan harus dijelaskan.Nilai 1 mewakili fungsi yang memanggil debug.info() , nilai 2 mewakili fungsi yang memanggil fungsi itu, dan seterusnya.

options: string

Sebuah string yang menjelaskan apa yang harus diwakili informasi yang dikembalikan.Ini hanya harus berisi 0 atau 1 contoh karakter slnaf, masing-masing mewakili sepotong informasi:

  • s ( string ) — Identifikasi sumber fungsi, sama dengan nama lengkap skrip yang didefinisikan fungsi.
  • l ( nomor ) — Nomor baris panggilan fungsi yang diwakili oleh level .
  • n ( string ) — Nama fungsi; mungkin nil untuk fungsi anonim dan fungsi C tanpa nama debug yang ditugaskan.
  • a ( nomor , boolean ) — Aritas fungsi, yang merujuk pada jumlah parameter dan apakah fungsi itu variatif.
  • f ( fungsi ) — Fungsi yang diperiksa.

Memberikan nilai

info

Memungkinkan inspeksi programatik dari tumpukan panggilan.Fungsi ini berbeda dari debug.traceback() dalam hal menjamin format data yang dikembalikan.Ini berguna untuk tujuan pencatatan dan penyaringan umum serta untuk mengirim data ke sistem yang mengharapkan input terstruktur, seperti agregasi kecelakaan.


local function fnA()
end
local function fnB()
end
-- Garis keluar ("l"), nama ("n"), dan identifikasi ("f") untuk kedua fnA() dan fnB()
print(debug.info(fnA, "lnf")) --> 1 fungsi fnA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

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

Parameter

function: function

Fungsi tumpukan panggilan yang informasi yang dikembalikan harus deskripsikan.

options: string

Sebuah string yang menjelaskan apa yang harus diwakili informasi yang dikembalikan.Ini hanya harus berisi 0 atau 1 contoh karakter slnaf, masing-masing mewakili sepotong informasi:

  • s ( string ) — Identifikasi sumber fungsi, sama dengan nama lengkap skrip yang didefinisikan fungsi.
  • l ( nomor ) — Garis yang function di definisikan pada.
  • n ( string ) — Nama fungsi; mungkin nil untuk fungsi anonim dan fungsi C tanpa nama debug yang ditugaskan.
  • a ( nomor , boolean ) — Aritas fungsi, yang merujuk pada jumlah parameter dan apakah fungsi itu variatif.
  • f ( fungsi ) — Fungsi yang diperiksa.

Memberikan nilai

info

Memungkinkan inspeksi programatik dari tumpukan panggilan.Fungsi ini berbeda dari debug.traceback() dalam hal menjamin format data yang dikembalikan.Ini berguna untuk tujuan pencatatan dan penyaringan umum serta untuk mengirim data ke sistem yang mengharapkan input terstruktur, seperti agregasi kecelakaan.


local function fnA()
-- Pengidentifikasi sumber output ("s") dan baris ("l") pada tingkat 1 dan 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

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

Parameter

thread: coroutine

Thread yang dikembalikan oleh coroutine.create() .

level: number

Menentukan di tingkat apa dari tumpukan panggilan informasi yang dikembalikan harus dijelaskan.Nilai 1 mewakili fungsi yang memanggil debug.info() , nilai 2 mewakili fungsi yang memanggil fungsi itu, dan seterusnya.

options: string

Sebuah string yang menjelaskan apa yang harus diwakili informasi yang dikembalikan.Ini hanya harus berisi 0 atau 1 contoh karakter slnaf, masing-masing mewakili sepotong informasi:

  • s ( string ) — Identifikasi sumber fungsi, sama dengan nama lengkap skrip yang didefinisikan fungsi.
  • l ( nomor ) — Nomor baris panggilan fungsi yang diwakili oleh level .
  • n ( string ) — Nama fungsi; mungkin nil untuk fungsi anonim dan fungsi C tanpa nama debug yang ditugaskan.
  • a ( nomor , boolean ) — Aritas fungsi, yang merujuk pada jumlah parameter dan apakah fungsi itu variatif.
  • f ( fungsi ) — Fungsi yang diperiksa.

Memberikan nilai

profilebegin

()

Memulai profiling untuk label MicroProfiler.

Parameter

label: string

Teks yang ditampilkan label MicroProfiler ini.

Memberikan nilai

()

profileend

()

Menghentikan profiling untuk label MicroProfiler paling baru yang debug.profilebegin() dibuka.

Memberikan nilai

()

getmemorycategory

Kembalikan nama kategori memori aktif thread saat ini.

Memberikan nilai

Kategori memori aktif thread saat kategori.

setmemorycategory

Menugaskan nama tag khusus ke kategori memori thread saat ini di Konsol Pengembang.Berguna untuk menganalisis penggunaan memori dari beberapa thread dalam skrip yang sama yang sebaliknya akan dikumpulkan bersama di bawah tag/nama yang sama.Kembali nama kategori memori sebelumnya dari thread saat ini.

Parameter

tag: string

Memberikan nilai

Kategori memori sebelumnya dari thread saat ini.

resetmemorycategory

()

Atur ulang tag yang ditugaskan oleh debug.setmemorycategory() ke nilai yang ditugaskan secara otomatis (biasanya, nama skrip).

Memberikan nilai

()

dumpcodesize

()

Menampilkan tabel ukuran kode asli dari fungsi dan skrip individu.Fungsi ini hanya tersedia di Bilah Perintah di Studio.Lebih banyak rincian dapat ditemukan di halaman Pembuatan Kode Asli.

Memberikan nilai

()