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.
table debug.getfenv( table object )
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.
function, string, number debug.gethook( thread thread = nil )
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.
string, any debug.getlocal( thread thread = Current thread, number level, number index )
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.
table debug.getmetatable( any object )
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.
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.
string, any debug.getupvalue( function func, number index )
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.
table debug.setfenv( table object, table env )
Bunu kullanmanız tavsiye edilmez. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir. İletilen nesnenin ortamını (environment) ayarlar.
debug.sethook( thread thread, function hook, string mask, number count )
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.
boolean debug.setmetatable( any object, table metatable )
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.
string debug.setupvalue( function func, number index, any val = nil )
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.
string debug.traceback( thread thread = current thread, string message = nil, number level = 1 )
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.
number debug.upvalueid( function func, number index )
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.
debug.upvaluejoin( function f1, number n1, function f2, number n2 )
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