Geri İzleme
Geri izleme, özellikle ilişkili bir olayın bitiş noktasını bulmaktır (aşağıya bakın). Bir kez orada, hata ayıklayıcı bir kesme noktası yerleştirilir. Özellik tetiklenir ve hata ayıklayıcı durduğunda. Çağrı yığını, çağrı yolunu izlemek için gözden geçirilir. Çağrı yığınını yürürken değişken durumlar hakkında notlar alabilir veya olayı tekrar incelemek için yeni kesme noktaları yerleştirebilirsiniz.
Özellik tekrar tetiklenir ve hata ayıklayıcı yeni kesme noktalarında durur. Daha sonra hedef bulunana kadar izlemeyi tekrarlayabilir veya ileri izlemeyi gerçekleştirebilirsiniz .
Artılar ve eksiler
- Çağrı yığınına çıkmak ve bir yere nasıl geldiğinizi görmek her zaman daha kolaydır.
- Bir uç noktaya ulaşmadan önce doğru olması gereken milyonlarca koşul olabilir. Son noktayı zaten biliyorsanız, kendinize çok iş kazandınız.
- Özellik bozulursa. Asla son noktaya ulaşamazsınız ve nedenini anlamaya çalışırken zaman kaybedilebilir.
Uç Nokta Keşfi
Bir özelliği hata ayıklamak için kaynak kodda nihai hedefe ulaşıldığını bilmelisiniz. Kodun oraya nasıl geldiğini görmek için yalnızca bu noktadan itibaren geri adım atabilirsiniz . Bir örnek; Geri almanın nasıl yapıldığını anlamak. Koddaki şeylerin geri alındığını biliyorsunuz, ancak işlerin oraya nasıl ulaştığını bilmiyorsunuz . Bu , özelliğin nasıl çalıştığını anlamak için geri çekilmeye aday olacaktır .
İleri İzleme
İleri izleme, bir özellikle ilişkili bir olayın başlangıç noktasını bulmaktır (aşağıya bakın). Bir kez orada, günlük iletileri kaynak koduna eklenir veya kesme noktaları ayarlanır. Bu işlem, özelliğin hedefini bulana kadar başlangıç noktasından uzaklaştıkça tekrarlanır .
Artılar ve eksiler
- Bir özellik bulmak için en kolay başlangıç noktasıdır.
- Kod karmaşıklığı, ileri izlemenin etkinliğini azaltır. Kodda ne kadar çok koşul varsa, yanlış yöne gitme şansınız o kadar artar.
- İleriye doğru izleme, genellikle ilgisiz olaylar tarafından tetiklenecek kesme noktalarının ayarlanmasıyla sonuçlanır. Hata ayıklama işlemini yarıda kesme ve aramanıza müdahale etme.
Başlangıç Noktası Keşfi
Anahtar kelimeler, kullanıcı arabirimi tanımlayıcıları (düğme kimlikleri, pencere adları) veya özelliğiyle ilişkilendirilmiş bulunması kolay olay dinleyicileri kullanabilirsiniz. Örneğin, geri alma özelliğini tetiklemek için kullanılan düğmeyle başlayabilirsiniz .
Eleme süreci
Bunu başlangıç noktası ve bitiş noktası konumlarına kıyasla orta nokta olarak düşünebilirsiniz . Bir özellikte bir kod parçasının kullanıldığını zaten bildiğinizde, eleme işlemini gerçekleştirirsiniz , ancak bu, özelliğin başlangıcı veya sonu değildir.
Orta noktadan aldığınız yön , giriş ve çıkışların sayısına bağlıdır. Kod yığını birçok yerde kullanılıyorsa , bu konumdan geriye doğru izleme , hepsinin incelenmesi gerektiğinden çok zaman alabilir. Daha sonra bu listeyi azaltmak için bir eleme işlemi uygularsınız. Alternatif olarak, bu noktadan itibaren ileri bir izleme gerçekleştirebilirsiniz , ancak yine de kod yığını birçok yere dallanırsa bu da bir sorun olabilir.
Özellik için açıkça yürütülmeyecek yolları izlemeyerek konum yönlerini azaltmanız gerekir. Bu kodu geçerek ve yalnızca özellikle ilgili olabilecek kesme noktalarını yerleştirerek.
Orta nokta hata ayıklama genellikle daha gelişmiş IDE özellikleri gerektirir. Kod hiyerarşisini ve bağımlılıklarını görebilme. Bu araçlar olmadan yapmak zor.
Artılar ve eksiler
- Orta noktalar , özelliği düşündüğünüzde genellikle kafanıza giren ilk kod parçasıdır. Kendinize "Ah, bunun çalışmak için XXXX kullanması gerekiyor" diyorsunuz.
- Orta noktalar başlangıç noktalarını en kolay şekilde ortaya çıkarabilir .
- Orta noktalar , senkronizasyon veya diş açma değişiklikleri nedeniyle kaybolduğunda izi bir özelliğe götürmenin kolay bir yolu olabilir.
- Orta noktalar sizi aşina olmadığınız kodlara götürebilir. Neler olup bittiğini öğrenmek için size zaman kazandırıyor.