Studio menawarkan banyak alat debug yang umum ditemukan di Integrated Development Environments (IDEs).Alat-alat ini membantu Anda memecahkan masalah dan memeriksa skrip baris demi baris saat dijalankan.Informasi debug ditampilkan di Tonton , Tumpukan Panggilan , Titik Pemutusan , dan Output jendela untuk Anda periksa.
Alur kerja umum
Jika Anda melihat masalah dalam pengalaman Anda atau ingin memverifikasi bahwa itu berfungsi seperti yang Anda rencanakan, Anda dapat mendepur kode yang terkait dengannya sebagai berikut:
Sisipkan titik istirahat pada baris kode yang ingin Anda periksa.
Di tab Skrip, klik Mainkan atau Jalankan di tab tes untuk memulai sesi pengujian, juga dikenal sebagai sesi debugging.
Ketika skrip mencapai titik istirahat, sesi pengujian berhenti.Periksa Jam Tangan, Tumpukan Panggilan, dan Jendela Keluaran untuk membantu Anda mendiagnosis dan memahami masalah.
Sisipkan titik istirahat tambahan pada baris kode yang belum dieksekusi untuk memeriksa data tambahan.Nonaktifkan atau hapus titik pemutus yang tidak Anda butuhkan lagi.
Di tab Skrip , klik Hentikan untuk mengakhiri sesi debugging.
Ulangi langkah sebelumnya sampai Anda memecahkan masalah atau menemukan penyebab akar masalahnya.Saat Anda mempelajari alur kerja umum, Anda dapat mengonfigurasi titik istirahat untuk hanya pecah jika kondisi tertentu dipenuhi, untuk mencetak pesan ke jendela Output, dan untuk dijalankan hanya di klien atau server.Untuk informasi lebih lanjut, lihat Konfigurasi Titik Pemutus.
Sisipkan titik istirahat
Breakpoint adalah titik pemeriksaan yang membekukan atau "memutus" eksekusi skrip Anda di baris tertentu.Anda dapat menggunakan jeda untuk memeriksa dan mem debug pengalaman Anda, menonton variabel, dan memeriksa tumpukan panggilan.Breakpoint adalah salah satu cara paling efektif untuk mem debug fungsi, jadi mereka adalah salah satu alat debugging paling penting.Anda dapat menyisipkan titik istirahat di baris kode eksekutif mana pun.
Untuk menyisipkan titik istirahat standar di baris kode, klik kiri margin ke kanan nomor barisnya.Anda juga dapat mengklik kanan margin dan klik Tambahkan Titik Pemutus.Breakpoint muncul sebagai titik merah.Untuk menonaktifkannya, klik titik.

Langkah melalui kode
Jika Anda menyisipkan titik istirahat di baris dalam skrip, skrip berhenti sebelum mengeksekusi baris itu.Panah kuning yang disebut "debugger" menunjukkan baris kode mana yang dieksekusi berikutnya.

Ketika skrip berhenti, jalankan kode berikut satu per satu dengan melangkah melalui mereka dengan tombol di tab Skrip.Tombol juga muncul di sudut kiri atas jendela Tumpukan Panggilan.Saat Anda melangkah melalui kode, awasi bagaimana pengalaman Anda berubah saat baris saat ini dieksekusi.

Tabel berikut menyajikan tiga cara untuk melangkah melalui kode.Untuk melanjutkan mengeksekusi kode Anda setelah Anda mencapai titik istirahat, klik Lanjutkan di tab Skrip .
Tombol | Tindakan | Jalan pintas | Deskripsi |
---|---|---|---|
![]() | Langkah ke dalam | F11 | Tombol Langkah ke dalam memindahkan debugger ke kode fungsi pada baris saat ini.Jika tidak ada fungsi di baris saat ini, debugger pindah ke baris berikutnya. |
![]() | Langkah Melampaui | F10 | Tombol Langkah Melampaui memindahkan debugger ke baris kode berikutnya, tidak bergerak ke fungsi. |
![]() | Langkah Keluar | ShiftF11 | Tombol Langkah Keluar memindahkan debugger keluar dari fungsi saat ini dan ke baris kode berikutnya setelah panggilan fungsi.Jika baris saat ini tidak berada di dalam fungsi, debugger pindah ke baris berikutnya. |
Periksa kode
Ketika titik istirahat menghentikan pengalaman selama tes permainan, Anda dapat memeriksa jendela Tonton jendela, Tumpukan Panggilan jendela, Output jendela, dan Editor Skrip untuk menemukan informasi tentang nilai variabel dan eksekusi fungsi.Dengan informasi ini, Anda dapat menemukan penyebab akar masalah dalam pengalaman Anda.
Menonton
Jendela Menonton memiliki dua tab: Variabel dan Jam Tangan Saya .Tab Variabel menunjukkan informasi tentang variabel saat ini dalam lingkup, dan tab Jam Tangan Saya menunjukkan nilai variabel atau ekspresi yang Anda definisikan.Kedua tab menampilkan informasi sebelum baris dieksekusi.
Tab Variabel memiliki kolom berikut:
- Nama - Nama yang diumumkan dari variabel.
- Scope - Scope variabel: di mana bisa "dilihat" dan diakses, seperti Lokal, Global, atau Upvalue.
- Nilai - Nilai saat ini dari variabel.
- Jenis Data - Jenis data variabel.
Tab Jam Tangan Saya memiliki kolom berikut:
- Ekspresi - Ekspresi yang ingin Anda tonton.
- Nilai - Nilai saat ini dari ekspresi.
- Tipe Data - Tipe data dari ekspresi.
Di tab Variabel , Anda dapat menyaring cakupan variabel dengan mengklik ikon filter.Anda juga dapat mengurutkan baris dengan mengklik nama kolom untuk disortir.Jendela jam menyediakan pandangan yang diperluas dan tertutup dari tabel.

Untuk memeriksa kode di jendela Tonton:
Jika jendela Tonton tidak terbuka, maka klik Tonton di tab Lihat.
Ketika sesi pengujian Anda berhenti di titik istirahat, pikirkan bagaimana Anda mengharapkan baris saat ini untuk mengubah nilai variabel dalam skrip tersebut.
Saat Anda melangkah melalui kode, perhatikan bagaimana nilai variabel berubah di tab Variabel .Jika Anda ingin menonton ekspresi yang tidak ada di tab Variabel, buka tab Jam Tangan Saya .Klik baris kosong di kolom Ekspresi, lalu ketik ekspresi ke dalamnya.Jika Anda ingin menonton variabel di Editor Skrip, klik dua kali nama variabel, klik kanan, lalu klik Tambahkan Pengawas .
Bandingkan nilai variabel dan ekspresi dari apa yang Anda harapkan dan apa yang Anda lihat di jendela Tonton.Jika ada perbedaan antara bagaimana Anda mengharapkan variabel untuk berubah dan bagaimana sebenarnya mereka berubah, maka variabel atau fungsi yang berinteraksi dengan mereka mungkin menyebabkan masalah atau bug.
Tumpukan Panggilan
Jendela Tumpukan Panggilan menunjukkan baris kode mana yang akan dieksekusi berikutnya saat debugger mencapai titik istirahat.Tumpukan Panggilan menunjukkan baris mana yang Anda panggil fungsi dari dan, jika Anda memanggil fungsi di fungsi lain, urutan panggilan fungsi dan baris mana yang memanggil fungsi lain.Fungsi teratas dari Tumpukan Panggilan adalah yang terakhir dipanggil dan pertama dieksekusi.Anda dapat menggunakan Tumpukan Panggilan untuk memeriksa apakah urutan panggilan fungsi di skrip Anda sesuai dengan model mental panggilan fungsi.

Jika Anda memiliki beberapa titik pemutusan di berbagai skrip, mereka mungkin akan menghentikan sesi tes permainan pada saat yang sama.Anda dapat melompat ke titik istirahat dengan mengklik panah di sebelah nama skrip di jendela Stack Panggil.Jika Anda mengklik Lanjutkan , maka Anda melangkah melewati semua titik istirahat yang berhenti pada saat yang sama.

Untuk memeriksa kode di jendela Stack Panggil selama sesi debugging:
Jika jendela Tumpukan Panggilan tidak terbuka, maka klik Tumpukan Panggilan di tab Tampilan.
Saat pengalaman Anda berhenti di titik istirahat, pikirkan tentang bagaimana Anda mengharapkan urutan panggilan fungsi berada di skrip itu.
Tumpukan Panggilan menunjukkan urutan panggilan fungsi.Jika titik istirahat berada di dalam fungsi, Stack Panggilan menunjukkan fungsi mana yang memanggil fungsi itu, jika ada.Tumpukan Panggilan juga menunjukkan nama dan nomor baris setiap fungsi.Klik baris untuk fungsi untuk melompat ke sana.
Bandingkan urutan panggilan fungsi yang Anda pikirkan di langkah 2 dan urutan aktual dari langkah 3.Jika ada perbedaan, maka ada perbedaan antara bagaimana Anda mengharapkan kode untuk berperilaku dan bagaimana sebenarnya berperilaku, sehingga menyebabkan masalah dan bug potensial.
Output
Jendela Keluaran yang dapat diakses dari tab Pandangan, menampilkan kesalahan yang ditangkap dari menjalankan skrip, pesan dari Roblox Engine, pesan dari panggilan ke print() , dan kesalahan dari panggilan ke warn() .
Editor Naskah
Debugger terintegrasi dengan Editor Skrip.Ketika pengalaman Anda berhenti di titik istirahat dalam skrip, Anda dapat mengarahkan mouse Anda ke nama variabel untuk melihat nilainya.Sebagai contoh, Anda dapat melihat nilai tabel yang Anda berikan sebagai argumen dalam panggilan fungsi.

Konfigurasi titik patah
Anda dapat mengonfigurasi titik istirahat untuk hanya pecah jika kondisi tertentu dipenuhi, untuk mencetak pesan ke jendela Output, dan untuk dijalankan hanya pada klien atau server.Anda juga dapat mencampur konfigurasi ini bersama-sama untuk memenuhi kebutuhan debugging Anda.
Edit titik pemutus
Anda dapat mengedit konfigurasi titik istirahat kapan saja, termasuk selama sesi pengujian.Jika Anda mengedit titik istirahat selama sesi pengujian, perubahan tersebut bertahan bahkan setelah Anda menyelesaikannya.Anda juga dapat mengedit titik istirahat yang sedang menghentikan sesi pengujian Anda, tetapi perubahan tidak berlaku sampai sesi pengujian berikutnya.
Untuk mengedit konfigurasi titik istirahat:
Klik kanan titik pemutus, lalu klik Edit Titik Pemutus .
Di jendela Edit Breakpoint , konfigurasi titik pemutus seperti yang Anda inginkan.
Kondisi, pesan log, dan opsi
Untuk setiap titik istirahat, Anda dapat mengatur Kondisi nya, Pesan Log , Lanjutkan Eksekusi , dan Konteks .
Kondisi adalah ekspresi yang menentukan apakah titik istirahat diaktifkan.Kondisi adalah opsional.Jika Kondisi kosong, titik istirahat selalu diaktifkan.Jika Kondisi ada, maka titik istirahat hanya diaktifkan jika kondisi benar.Sebagai contoh, jika Anda ingin titik istirahat hanya diaktifkan jika variabel n sama dengan 42, maka atur Kondisi sebagai n == 42 .Kondisi berguna untuk mendeteksi bagaimana fungsi dieksekusi ketika variabel tertentu memiliki nilai tertentu atau jika Anda ingin mematahkan hanya pada eksekusi tertentu dalam loop.
Pesan Log adalah ekspresi yang dicetak ke jendela Output saat kondisi benar.Format Pesan Log adalah sama dengan argumen untuk pernyataan print() .Sebagai contoh, atur Pesan Log sebagai "The value of n:", n untuk mencetak pesan yang sama dengan print("The value of n:", n) .Anda dapat menambahkan dan menghapus Pesan Log tanpa harus menghentikan eksekusi, tidak seperti pernyataan cetak.
Opsi Lanjutkan Eksekusi menentukan apakah titik istirahat menghentikan skrip jika diaktifkan.Berguna jika Anda ingin melogikan nilai variabel atau ekspresi tanpa menghentikan eksekusi.Opsi ini dinonaktifkan secara default.
Konteks dari titik pemutusan menentukan apakah titik pemutusan harus diaktifkan di Klien, Server, atau Edit.Jika konteks adalah Klien, maka titik pemutus di skrip sisi klien.Jika konteks adalah Server, maka titik istirahat diaktifkan dalam skrip sisi server.Jika konteksnya Edit, maka titik pemutus terpicu saat Anda mendepurasi plugin.Jika Anda mengklik Konteks Kustom, jendela menunjukkan konteks saat ini.

Breakpoint dan logpoin kondisional
Studio menawarkan variasi nama dari titik pemutusan untuk membuat pemutusan titik lebih cepat.Untuk menyisipkan variasi bernama, klik kanan margin ke sebelah kanan nomor barisnya, lalu klik varian yang ingin Anda sisipkan.

A Titik pemutus kondisional adalah titik pemutus dengan kondisi dan eksekusi lanjutan dinonaktifkan.Breakpoint kondisional membekukan skrip Anda hanya jika kondisi benar, jadi mereka berguna untuk mendeteksi bagaimana fungsi dieksekusi ketika variabel tertentu memiliki nilai tertentu.Breakpoint kondisional menggunakan nilai variabel sebelum baris dieksekusi.Ketika Anda menyisipkan Titik Pemutus Kondisional, kursor Anda fokus pada opsi Kondisi untuk Anda atur dengan cepat.
Sebuah Titik Log adalah titik istirahat dengan Pesan Log dan Eksekusi Teruskan diaktifkan.Logpoints mengirim pesan ke jendela Output tanpa menghentikan skrip Anda, sehingga berguna untuk mendeteksi nilai variabel.Logpoints menggunakan nilai variabel sebelum baris dieksekusi.Ketika Anda menyisipkan Logpoint, kursor Anda fokus pada Pesan Log untuk Anda atur dengan cepat.
Nonaktifkan titik pemutus
Ada banyak cara untuk menonaktifkan dan mengaktifkan kembali titik pemutusan:
- Klik ikon titik pemutus.
- Edit titik istirahat dan beralih kotak centang Diaktifkannya.
- Klik kanan ikon titik istirahat dan klik Nonaktifkan Titik Istirahat atau Aktifkan Titik Istirahat.
Hapus titik pemutus
Untuk menghapus titik pemutus, klik tengah ikonnya. Anda juga dapat mengklik kanan ikonnya dan klik Hapus Titik Pemutus .
Jendela titik patah
Jendela Titik Pemutus menunjukkan semua titik pemutus dalam pengalaman Anda.Untuk membuka jendela Titik Pemutus, klik tab Tampilan di bagian atas Studio, lalu klik Titik Pemutus.

Jendela Titik Pemutus memiliki kolom berikut: tidak diberi label, Skrip, Baris, Garis Sumber, Kondisi, Pesan Log, dan Lanjutkan Eksekusi.Kolom Tidak Ber label, Skrip, dan Garis selalu ditampilkan, tetapi Anda dapat menyalakan kolom lain dengan mengklik tiga titik di sudut kanan atas jendela.
Di kolom tanpa label, label (x3) menunjukkan jumlah titik pemutus pada baris kode yang sama, dan ikon menunjukkan konfigurasi titik pemutus.Titik istirahat pada baris yang sama berbagi Kondisi, Pesan Log, dan Lanjutkan Eksekusi yang sama tetapi bervariasi dalam konteks.Anda dapat mengedit konfigurasi titik istirahat di jendela Titik Istirahat.Sebagai contoh, Anda dapat mengedit Kondisi titik pemutus dengan mengedit bidang teks di kolom Kondisinya.

Anda dapat mengaktifkan dan menonaktifkan titik pemutus dengan mengklik ikon titik pemutusnya di kolom Aktif.Anda juga dapat mengklik tombol berikut untuk mengaktifkan, menonaktifkan, dan menghapus beberapa atau semua titik patah.
Tombol | Tindakan |
---|---|
![]() | Nonaktifkan semua titik pemutus. Jika titik pemutus manapun dinonaktifkan, aktifkan semuanya. |
![]() | Hapus semua titik patah. |
Ikon titik patah
Ikon titik pemutus tergantung pada apakah itu diaktifkan, memiliki kondisi, dan memiliki pesan log.Jika titik istirahat memiliki pesan log, maka tampak sebagai titik log terlepas dari apakah ia memiliki kondisi atau tidak.
Nama | Ikon | Diaktifkan | Kondisi | Pesan Log |
---|---|---|---|---|
Titik Patah | ![]() | Ya | Tidak | Tidak |
![]() | Tidak | Tidak | Tidak | |
Pos Pemutus Kondisi | ![]() | Ya | Ya | Tidak |
![]() | Tidak | Ya | Tidak | |
Titik Log | ![]() | Ya | Mungkin | Ya |
![]() | Tidak | Mungkin | Ya |
Alat debugging tambahan
Selain debugger, Studio menawarkan alat debugging tambahan untuk Anda memperbaiki masalah dan bug di pengalaman Anda.
Bar Perintah
Bar perintah memungkinkan Anda menjalankan perintah Luau saat pengalaman sedang berjalan.Ini tersedia di Studio dari tab Pandangan dan di Konsol Pengembang.
Konsol Pengembang
Konsol Pengembang memberikan berbagai rincian termasuk output klien dan server, penggunaan memori, kinerja jaringan, dan banyak lagi .Untuk membuka Konsol Pengembang saat menguji atau memainkan pengalaman, ketik /console ke dalam obrolan atau tekan F9 .Untuk informasi lebih lanjut, lihat Konsol Pengembang.
File log
Ketika skrip dicetak atau terjadi kesalahan di Studio atau aplikasi Pemutar, aplikasi mencatat pesan dalam file log di sistem file lokal.File-file ini terletak di tempat yang berbeda tergantung pada sistem operasi.
Jendela
Untuk mengakses file log di Windows:
- Buka Penjelajah File .
- Navigasikan ke direktori %LOCALAPPDATA%\Roblox\logs .
- Klik dua kali pada log untuk membukanya. Log dengan nilai yang sama XXXXX berasal dari sesi Studio yang sama.
Makan Mac
Untuk mengakses file log di Mac:
- Buka Pencari .
- Di bilah menu, pilih Pergi ⟩ Pergi ke Folder... .
- Di dialog, masukkan ~/Library/Logs/Roblox .
- Klik dua kali hasil untuk menavigasi ke direktori log Roblox.
- Di dalam direktori, klik dua kali pada log untuk membukanya.
iOS
Anda dapat mengumpulkan log iOS menggunakan Mac atau menggunakan perangkat iOS.
Untuk mengakses file log iOS di Mac:
- Hubungkan perangkat iOS ke Mac.
- Buka Pencari .
- Navigasikan ke Layanan dan buka aplikasi Konsol .
- Untuk mengisi log waktu nyata di aplikasi Konsol, pilih perangkat iOS dari bilah sisi, klik tombol Mulai dan reproduksi masalah di perangkat iOS.
- Untuk mengisi log arsip di aplikasi Konsol, jalankan sudo log collect --device-name "[iOS Device Name]" di Terminal .Pastikan tidak ada apostrof dalam nama perangkat atau Anda mungkin mendapatkan kesalahan saat menjalankan perintah.
Android
Untuk mengakses file log di Android:
- Navigasikan ke Pengaturan > Sistem > Opsi pengembang .
- Toggle Opsi pengembang pada.
- Di komputer, unduh dan instal Android Studio.
- Di Android Studio, klik Logcat .
- Hubungkan perangkat Android ke komputer untuk secara otomatis mengisi Logcat dengan log.