debug

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Roblox'ta kodun depurajı için birkaç temel işlev sağlar.Lua'da doğrudan bulunan debug kütüphanesinin aksine, bu sürüm ağır bir şekilde kumandaya alındı.

Özet

İşlevler

İşlevler

traceback

Mevcut işlev çağrı yığınını bir dize olarak bir dizibırakır; başka bir deyişle, bu noktaya kadar çağrılan işlevlerin açıklaması.Sorun giderme sırasında, bu bir hata yığını izi gibi davranır, ancak senaryonun yürütmesini durdurmaz.

The parametresi, dikkate alınacak çağrı yığını seviyesini belirtir, çağrının kendisi olarak, fonksiyon çağrısı olarak, ve öylece devam eder.Sekansal işlev çağrılarının bir örneğini aşağıdaki kod örneğinde görün.

Bu işlevin genellikle yanlış sonuçlar vereceğini (orijinal kaynak koduna kıyasla) ve geri takip edilen formatın herhangi bir zamanda değişebileceğini unutmayın.Döndürülen değeri özel bilgiler için yorumlamamalısınız , örneğin senaryo isimleri veya satır numaraları gibi.

Aşağıdaki örnek sıralı işlev çağrıları içerir; fnB() çağrılır ve daha sonra fnA() 'yi çağırır ki bu da debug.traceback() 'yi çağırır.


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- İzlemeyi başlatmak için fnB() işlevini çağır
fnB()

Parametreler

message: string

Döndürülen diziilk satırı.

level: number

Geri dönmek için çağrı yığını "yukarı" olan çağrı sayısı.

Varsayılan değer: 1

Dönüşler

Mevcut işlev çağrı yığının izlenmesi.

traceback

Mevcut işlev çağrı yığınını bir dize olarak bir dizibırakır; başka bir deyişle, bu noktaya kadar çağrılan işlevlerin açıklaması.Sorun giderme sırasında, bu bir hata yığını izi gibi davranır, ancak senaryonun yürütmesini durdurmaz.

The parametresi, dikkate alınacak çağrı yığını seviyesini belirtir, çağrının kendisi olarak, fonksiyon çağrısı olarak, ve öylece devam eder.Sekansal işlev çağrılarının bir örneğini aşağıdaki kod örneğinde görün.

Bu işlevin genellikle yanlış sonuçlar vereceğini (orijinal kaynak koduna kıyasla) ve geri takip edilen formatın herhangi bir zamanda değişebileceğini unutmayın.Döndürülen değeri özel bilgiler için yorumlamamalısınız , örneğin senaryo isimleri veya satır numaraları gibi.

Aşağıdaki örnek sıralı işlev çağrıları içerir; fnB() çağrılır ve daha sonra fnA() 'yi çağırır ki bu da debug.traceback() 'yi çağırır.


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- İzlemeyi başlatmak için fnB() işlevini çağır
fnB()

Parametreler

thread: coroutine

coroutine.create() tarafından döndürülen bir işlem.

message: string

Döndürülen diziilk satırı.

level: number

Geri dönmek için çağrı yığını "yukarı" olan çağrı sayısı.

Varsayılan değer: 1

Dönüşler

Mevcut işlev çağrı yığının izlenmesi.

info

Çağrı yığınının programatik olarak incelenmesine izin verir.Bu işlev, döndürdüğü veri biçimini garanti ettiği için debug.traceback() 'dan farklıdır.Bu, genel kayıt ve filtreleme amaçları ile birlikte, çökme toplanması gibi yapılandırılmış giriş bekleyen sistemlere veri göndermek için de yararlıdır.


local function fnA()
-- Çıkış kaynağı tanımlayıcısı ("s") ve satır ("l") 1. ve 2. seviyelerde
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Bu işlevin benzer olduğunu unutmayın debug.getinfo , benzer bir amaç için hizmet eden standart Lua kütüphanesinin kullanılamayan bir parçası.

Parametreler

level: number

Geri döndürülen bilginin hangi çağrı yığını seviyesinde tanımlanması gerektiğini belirler.1 değeri debug.info() 'yi çağıran işlevi temsil eder, 2 değeri o işlevi çağıran işlevi temsil eder ve öylece.

options: string

Döndürülen bilginin neyi temsil etmesi gerektiğini tanımlayan bir dize.Sadece karakterlerin slnaf 'inin 0 veya 1 örneğini içermelidir, her biri bir bilgi parçasını temsil eder:

  • s ( dize ) — Fonksiyon kaynağı tanımlayıcısı, fonksiyonun tanımlandığı senaryonun tam adıyla eşit.
  • l ( sayı ) — İşlev çağrısını temsil eden işlevin satır numarası level .
  • n ( dize ) — Fonksiyonun adı; anonim işlevler ve atanmış bir depuraj adı olmadan C işlevleri için olabilir nil .
  • a ( sayı , mantıksal ) — Fonksiyonun referans ettiği değişken sayısı ve fonksiyonun çoklu olup olmadığı ile ilgili fonksiyonun aritmetik özelliği.
  • f ( işlevi ) — Denetlenen işlev.

Dönüşler

info

Çağrı yığınının programatik olarak incelenmesine izin verir.Bu işlev, döndürdüğü veri biçimini garanti ettiği için debug.traceback() 'dan farklıdır.Bu, genel kayıt ve filtreleme amaçları ile birlikte, çökme toplanması gibi yapılandırılmış giriş bekleyen sistemlere veri göndermek için de yararlıdır.


local function fnA()
end
local function fnB()
end
-- fnA() ve fnB() için çıktı hattı ("l"), adı ("n") ve tanımlayıcı ("f")
print(debug.info(fnA, "lnf")) --> 1 fnA işlevi: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Bu işlevin benzer olduğunu unutmayın debug.getinfo , benzer bir amaç için hizmet eden standart Lua kütüphanesinin kullanılamayan bir parçası.

Parametreler

function: function

Geri döndürülen bilginin açıkladığı çağrı yığınının işlevi.

options: string

Döndürülen bilginin neyi temsil etmesi gerektiğini tanımlayan bir dize.Sadece karakterlerin slnaf 'inin 0 veya 1 örneğini içermelidir, her biri bir bilgi parçasını temsil eder:

  • s ( dize ) — Fonksiyon kaynağı tanımlayıcısı, fonksiyonun tanımlandığı senaryonun tam adıyla eşit.
  • l ( sayı ) — function üzerinde tanımlanan satır.
  • n ( dize ) — Fonksiyonun adı; anonim işlevler ve atanmış bir depuraj adı olmadan C işlevleri için olabilir nil .
  • a ( sayı , mantıksal ) — Fonksiyonun referans ettiği değişken sayısı ve fonksiyonun çoklu olup olmadığı ile ilgili fonksiyonun aritmetik özelliği.
  • f ( işlevi ) — Denetlenen işlev.

Dönüşler

info

Çağrı yığınının programatik olarak incelenmesine izin verir.Bu işlev, döndürdüğü veri biçimini garanti ettiği için debug.traceback() 'dan farklıdır.Bu, genel kayıt ve filtreleme amaçları ile birlikte, çökme toplanması gibi yapılandırılmış giriş bekleyen sistemlere veri göndermek için de yararlıdır.


local function fnA()
-- Çıkış kaynağı tanımlayıcısı ("s") ve satır ("l") 1. ve 2. seviyelerde
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Bu işlevin benzer olduğunu unutmayın debug.getinfo , benzer bir amaç için hizmet eden standart Lua kütüphanesinin kullanılamayan bir parçası.

Parametreler

thread: coroutine

coroutine.create() tarafından döndürülen bir işlem.

level: number

Geri döndürülen bilginin hangi çağrı yığını seviyesinde tanımlanması gerektiğini belirler.1 değeri debug.info() 'yi çağıran işlevi temsil eder, 2 değeri o işlevi çağıran işlevi temsil eder ve öylece.

options: string

Döndürülen bilginin neyi temsil etmesi gerektiğini tanımlayan bir dize.Sadece karakterlerin slnaf 'inin 0 veya 1 örneğini içermelidir, her biri bir bilgi parçasını temsil eder:

  • s ( dize ) — Fonksiyon kaynağı tanımlayıcısı, fonksiyonun tanımlandığı senaryonun tam adıyla eşit.
  • l ( sayı ) — İşlev çağrısını temsil eden işlevin satır numarası level .
  • n ( dize ) — Fonksiyonun adı; anonim işlevler ve atanmış bir depuraj adı olmadan C işlevleri için olabilir nil .
  • a ( sayı , mantıksal ) — Fonksiyonun referans ettiği değişken sayısı ve fonksiyonun çoklu olup olmadığı ile ilgili fonksiyonun aritmetik özelliği.
  • f ( işlevi ) — Denetlenen işlev.

Dönüşler

profilebegin

()

Bir MikroProfiler etiketi için profillemeye başlar.

Parametreler

label: string

Bu MikroProfil etiketinin gösterdiği metin.

Dönüşler

()

profileend

()

Açılan en yeni MikroProfiler etiketi için profillemeyi durdurur. debug.profilebegin()

Dönüşler

()

getmemorycategory

Mevcut işlemin aktif hafız kategorisinin adını döndürür.

Dönüşler

Mevcut işlemin aktif hafız kategorisi.

setmemorycategory

Mevcut işlemin hafıza kategorisine özel bir etiket adı atar Geliştirici Konsoluna .Aksi takdirde aynı etiket/isim altında gruplandırılacak çok sayıda işletmenin bellek kullanımını analiz etmek için yararlıdır.Mevcut işlemin önceki bellek kategorisinin adını döndürür.

Parametreler

tag: string

Dönüşler

Mevcut işlemin önceki hafıza kategorisi.

resetmemorycategory

()

debug.setmemorycategory() tarafından atanan etiketi otomatik olarak atanan değere sıfırlar (genellikle, senaryo adı).

Dönüşler

()

dumpcodesize

()

Tek tek bireysel işlevlerin ve senaryoların yerli kod boyutunun bir tablosunu görüntüler.Bu işlev yalnızca Studio'daki Komut Çubuğunda mevcuttur.Daha fazla ayrıntı Yerel Kod Oluşturma sayfasında bulunabilir.

Dönüşler

()