debug
Debug kütüphanesi, betiklerinizi (script) ayıklamanıza (debug) yardımcı olmak için tasarlanmıştır, ancak bunun yanında başka birçok güçlü kullanımı da vardır. GMod'da bazı yerleşik debug fonksiyonları güvenlik nedenleriyle kaldırılmıştır.
Metotlar
debug.debug()
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. Bu yalnızca 'source dedicated server' üzerinde çalışır.
Kullanıcıyla etkileşimli bir moda girer ve kullanıcının girdiği her bir metni çalıştırır. Basit komutlar ve diğer hata ayıklama olanaklarını kullanarak, kullanıcı genel ve yerel değişkenleri inceleyebilir, değerlerini değiştirebilir, ifadeleri değerlendirebilir ve benzeri işlemleri yapabilir. Sadece 'cont' kelimesini içeren bir satır bu fonksiyonu sonlandırır, böylece çağıran fonksiyon çalışmasına devam eder.
`debug.debug` komutları herhangi bir fonksiyon içinde leksikal olarak iç içe değildir ve bu nedenle yerel değişkenlere doğrudan erişimleri yoktur.
Bu etkileşimli moddan çıkmak için Ctrl + Z tuşlarına basıp ardından Enter'a basabilir VEYA tek bir satıra 'cont' kelimesini yazıp enter'a basabilirsiniz.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
İletilen nesnenin ortamını (environment) döndürür. Bu, `debug.setfenv` ile ayarlanabilir.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
İletilen iş parçacığının (thread) mevcut kanca (hook) ayarlarını döndürür. İş parçacığı argümanı atlanabilir. Bu, oyun modu (gamemode) kancalarından tamamen farklıdır. Kancalar hakkında daha fazla bilgi http://www.lua.org/pil/23.2.html adresinde bulunabilir. Bu fonksiyon, en son çağrılan `debug.sethook`'un fonksiyonunu, maskesini ve sayısını döndürür.
table debug.getinfo( function funcOrStackLevel, string fields = "flnSu>", function or nil function )
Bir fonksiyon hakkında hata ayıklama bilgilerini döndürür.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Belirtilen seviyeden (level) indekslenmiş bir yerel değişkenin adını ve değerini alır.
Bir fonksiyonun 'tailcall' dönüşü olduğunda, bu fonksiyonun yerel değişkenlerine erişemezsiniz.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bir nesnenin metatablosunu (metatable) döndürür. Bu fonksiyon, metatablonun `__metatable` alanını yok sayar.
table debug.getregistry()
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon boş bir tablo döndürecektir.
Eğer bu yüzden bir hata alırsanız, bir çözüm için aşağıdaki örneğe bakın.
Dahili Lua kayıt tablosunu (registry) döndürür.
Lua kayıt tablosu, motor ve ikili modüller tarafından Lua değerlerine referanslar oluşturmak için kullanılır. Kayıt tablosu, Lua ortamında çalıştırılan ve kullanılan her global değişkeni içerir. Referans sistemi için ayrıldıklarından, anahtar olarak bir sayı ile kayıt tablosuna girişler oluşturmaktan kaçının.
Kayıt tablosunun yanlış düzenlenmesi, oyunun çökmesi de dahil olmak üzere istenmeyen yan etkilere neden olabilir.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
İletilen fonksiyondaki bir indeksten değişken değerlerini almak için kullanılır. Bu, C fonksiyonları için hiçbir şey yapmaz.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
İletilen nesnenin ortamını (environment) ayarlar.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Verilen fonksiyonu bir Lua kancası (hook) olarak ayarlar. Bu, oyun modu (gamemode) kancalarından tamamen farklıdır. İş parçacığı (thread) argümanı tamamen atlanabilir ve bu fonksiyonu argümansız çağırmak mevcut kancayı kaldırır. Bu, varsayılan olarak sonsuz döngü tespiti için kullanılır. Kancalar hakkında daha fazla bilgi http://www.lua.org/pil/23.2.html ve https://www.gammon.com.au/scripts/doc.php?lua=debug.sethook adreslerinde bulunabilir.
LuaJIT'in JIT derleyicisi tarafından derlenen kod yürütülürken kancalar her zaman çalıştırılmaz, bunun nedeni Ara Temsil'in (Intermediate Representation) performans nedenleriyle sürekli çalışan bytecode'u dahili olarak saklamasıdır.
string debug.setlocal( thread thread = Current Thread, number level, number index, any value = nil )
Bu fonksiyon güvenlik endişeleri nedeniyle kaldırıldı.
Bir yerel değişkenin değerini ayarlar.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Nesnenin metatablosunu (metatable) ayarlar. `setmetatable`'dan farklı olarak, bu fonksiyon, iletilen ilk nesnenin geçerli bir tablo olup olmadığına bakılmaksızın çalışır; bu fonksiyon sayılar, fonksiyonlar ve hatta nil gibi ilkel veri tipleri üzerinde bile çalışır.
Bu fonksiyon güvenlik endişeleri nedeniyle kaldırıldı.
`func`'tan indekslenen değişkeni ayarlar.
debug.Trace()
Lua fonksiyon çağrı yığınını (call stack) konsola yazdırır.
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Tam bir yürütme yığını izlemesi (stack trace) döndürür.
Bu fonksiyon güvenlik endişeleri nedeniyle kaldırıldı.
`func`'tan indekslenen upvalue için benzersiz bir tanımlayıcı döndürür.
Bu fonksiyon güvenlik endişeleri nedeniyle kaldırıldı.
f1 Lua closure'ının n1'inci upvalue'sunu, f2 Lua closure'ının n2'inci upvalue'suna referans yapar.
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord