Intellij'de Java hata ayıklayıcısını kullanırken "Drop Frame" ne anlama geliyor?


96

Intellij 8'de Java hata ayıklayıcısını kullanıyordum ve "drop frame" etiketli bir düğme fark ettim, bunun hangi amaca hizmet ettiğini bilen var mı? Bu nasıl / neden kullanılacak / yararlı olacak?

Yanıtlar:


132

Uygulamanızın çağrı yığını hata ayıklayıcıda görüntülenebilir. "Drop Frame" işlevini kullanarak, bir anlamda zamanda geriye giderek bir önceki yığın çerçevesine "geri dönebilirsiniz". Bu, yeniden görmek istediğiniz kritik bir noktayı kaçırdıysanız, bir işleve yeniden girmeniz için yardımcı olabilir.

"Yığın Çerçevesi" adından da anlaşılacağı gibi, genel durumda zaten yapılmış olan değişiklikler (statik değişkenler, alan değerlerinde değişiklikler ve benzeri gibi) geri alınmayacak, sadece yerel değişkenler sıfırlanacaktır. Bu, başlangıçta kırılma noktanıza yol açandan farklı bir yürütme yoluna yol açabilir. Bunun farkında olmalısınız - uygulamayı yeniden başlatmak zorunda kalmadan farklı yürütme yollarını veya mevcut yığına yol açan belirli uzun bir süreci keşfetmenin genellikle yararlı bir özellik olduğunu düşünüyorum. Hata ayıklayıcı aracılığıyla da kullanılabilen değişken değerlerinin değişikliğiyle birleştiğinde, her türlü ilginç şeyi yapabilirsiniz.

Lütfen, meydana gelmiş olabilecek herhangi bir yan etkinin - örneğin ağ trafiği, dosya manipülasyonları, konsol çıkışı vb. - geri sarılamayacağını lütfen unutmayın.


15

Hata ayıklayıcıdaki Drop Frame, geçerli yığın çerçevesini açar ve kontrolü çağırma yöntemine geri koyarak yerel değişkenleri sıfırlar. Bu, bir işlevden tekrar tekrar geçmek için çok kullanışlıdır, ancak uyarılmalıdır: alan mutasyonları veya genel durum değişiklikleri kalacaktır.

Daha fazla bilgiyi burada görün .


8

Hata ayıklayıcıyı kullanarak yığından çerçeve bırakmak, temelde uygulamanızın yürütmesini önceki bir duruma ulaşmak için "geri sarmanıza" olanak tanır. Yığın çerçevesinin dışındaki değişkenler geri alınmaz.

Bir yan not olarak, bu özellik "Bırak denir inanmak için Eclipse Frame", ancak aynı amaca hizmet eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.