Eclipse hata ayıklayıcısında Step Into ve Step Over arasındaki fark nedir?


194

Bir Java programının tüm akışında hata ayıklamak istiyorum. Tutulmada F5(adım adım) ve F6(adım adım ) arasındaki fark nedir ?


FWIW, Xcode / Swift
Honey için

Yanıtlar:


270

(İle gösterilir sonraki yürütülecektir çizgi, geçerli yönerge işaretçisi ile aşağıdaki kodu düşünün ->at) f(x)satır g()tarafından çağrılan edilerek, g(2)çizgi main():

public class testprog {
    static void f (int x) {
        System.out.println ("num is " + (x+0)); // <- STEP INTO
    }

    static void g (int x) {
->      f(x); //
        f(1); // <----------------------------------- STEP OVER
    }

    public static void main (String args[]) {
        g(2);
        g(3); // <----------------------------------- STEP OUT OF
    }
}

Size adım olsaydı içine o noktada, sen hareket edecek println()hat f()işlev çağrısında adım atmakta.

Size adım olsaydı üzerinde bu noktada, sen hareket edecek f(1)hat g()işlev çağrısında asiyorsun.

Debugger'lar faydalı başka bir özelliği, adım üzerinden ya da aşama geri döner. Bu durumda, bir adım geri dönme, temel olarak bir düzey yukarı çıkıncaya kadar geçerli işlevde ilerlemenizi sağlar. Başka bir deyişle, adım adım olacak f(x)ve f(1)daha sonra en sonuna kadar çağıran fonksiyona vazgeçme g(3)içinde main().

Eclipse (şu anda kullanışlı elimizde tek kalan bu en azından Europa,) kullanan F5için step into, F6için step overve F7için step return.


1
"o zaman en sonuna kadar çağıran fonksiyona vazgeçme g(3); in main()" <- Eğer var olduğunu varsayarak Are geçerli konum gelen g(2)ve tüm bitirdiniz kez dönmek bir sonraki satıra g(3)?
Bal

1
@Honey, evet, bazı belirsizlikler vardı ( şu anda aktif olsun g(2)veya olmasın g(3)), bu yüzden ilk paragrafta bunu temizledim. Söylediğin için teşekkürler.
paxdiablo

144

Kod satırlarında hata ayıklarken, olağan senaryolar şunlardır:

  • ( Adım Adım ) Bir yöntem çağrılmak üzere ve bu yöntemin kodunda hata ayıklamak istiyorsunuz, bu nedenle bir sonraki adım bu yönteme geçip adım adım hata ayıklamaya devam etmektir.
  • ( Step Over ) Bir yöntem çağrılmak üzeredir, ancak bu özel çağrıda hata ayıklamak istemezsiniz, bu nedenle hata ayıklayıcının bu yöntemi tamamen bir adım olarak yürütmesini istersiniz.
  • ( Adım Dönüş ) Bu yöntemde adım adım hata ayıklamayı tamamladınız ve hata ayıklayıcının tek bir adım olarak dönene kadar tüm yöntemi çalıştırmasını istiyorsunuz.
  • ( Devam et ) Hata ayıklayıcının adım adım yerine "normal" yürütmeyi sürdürmesini istiyorsunuz
  • ( Satır Kesme Noktası ) Oraya nasıl geldiğini umursamazsınız, ancak yürütme belirli bir kod satırına ulaşırsa, hata ayıklayıcının yürütmeyi geçici olarak duraklatmasını istersiniz, böylece ne yapacağınıza karar verebilirsiniz.

Eclipse'in başka gelişmiş hata ayıklama özellikleri vardır, ancak bunlar temel temellerdir.

Ayrıca bakınız



5

Adım adımını kullanarak yöntemin ayrıntılarını inceleyemezsiniz. Geçerli satırı atlamak istiyorsanız, adım adım özelliğini kullanabilirsiniz, ardından bir F6sonraki satıra geçmek için yalnızca bir kez basmanız yeterlidir . Ve yöntemde yanlış bir şey olduğunu düşünüyorsanız F5, ayrıntıları incelemek için kullanın .


Bu yüzden adım attığımda ve işlev bazı baskı ifadeleri içeriyorsa, yazdırma gerçekleşir mi, olmaz mı?
kullaniciadi_4567

2

Adım Adım Yürütülecek olan seçili satırdaki bir sonraki ifade çağrılır ve yürütme, çağrılan yöntemin bir sonraki yürütülebilir satırında askıya alınır.

Adım Aşama Şu anda seçili olan satır yürütülür ve sonraki yürütülebilir satırda askıya alınır.

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.