Bazı işlevleri otomatik olarak "işaretler" diye bir araç var mı, böylece bir "çağrı yığını" yaklaşımı elde edebilirim.Hata ayıklama haskell: Her çağrıda bir işlevin adını görüntüleme
Aslında, her işlevden önce eklemek zorunda kalmadan, fct = Debug.trace "fct" $ ...
yazarak benzer bir davranışa sahip olmak isterim.
Profillemenin -fprof-auto ile benzer bir şey yaptığını biliyorum, ancak uygulama çalışırken görüntülenmesine ihtiyacım var.
Bir süre sonra sonsuz döngülere sahibim ve bu ekranın işlevi hangi işlevlerin hatalı olduğunu hemen gösterebilir. Devrimdeki işlevlerden birinin adını bilmeniz gerektiğinden, hlist ve kesme noktalarını kullanmak gerçekten yararlı değildir.
siz "olasılık hata ayıklama" tekniğini biliyor musunuz? Programınızı çalıştırmaya başlarsınız ve seçtiğiniz herhangi bir noktada, hata ayıklayıcıya ayrılın. Muhtemelen hesaplamak için en çok zaman harcayan fonksiyondasınız (çünkü herhangi bir fonksiyonda durma olasılığınız o fonksiyonda ne kadar zaman harcanmış olduğu ile ilgilidir!). –
Evet, GHCi hata ayıklayıcısının belgelendirmesiyle önerilen budur (ilk olarak, -farkında-istisna ayarlamanız gerekir). Ama hatırladığım kadarıyla, en son kullandığımda işe yaramadı ve ne olduğunu anlayabilmek için her aramadan önce fonksiyon adını eklemem gerekiyordu. –