Visual Studio'da izleme noktalarını kullanarak Çıkış penceresindeki günlük bilgileri
İzleme noktaları, kodunuzu değiştirmeden veya durdurmadan yapılandırılabilir koşullar altında çıktı penceresinde bilgileri günlüğe kaydetmenize olanak sağlar. Bu özellik hem yönetilen diller (C#, Visual Basic, F#) hem de yerel kod ile JavaScript ve Python gibi diller için desteklenir.
Dekont
.NET API'lerini kullanarak program aracılığıyla Çıkış penceresine bilgi kaydetme hakkında bilgi için bkz . Çıkış penceresine ileti gönderme.
Şimdi bir örnek alalım
Aşağıdaki örnek program, döngü başka bir yineleme çalıştırdığında bir sayaç değişkenine sahip basit for
bir döngüdür.
Aşağıdaki örnek program, döngü başka bir yineleme çalıştırdığında bir sayaç değişkenine sahip basit for
bir döngüdür.
using System.Diagnostics;
namespace Tracepoints
{
public class Program
{
public static void Main(string[] args)
{
int counter = 0;
for (int i=0; i<=10; i++)
{
counter +=1;
}
}
}
}
Kaynak kodunda izleme noktaları ayarlama
Kesme Noktası Ayarlar penceresindeki Eylem onay kutusunun altında bir çıkış dizesi belirterek izleme noktaları ayarlayabilirsiniz.
İzleme noktasını başlatmak için, önce izleme noktasını ayarlamak istediğiniz satır numarasının sol tarafındaki cilt payı öğesine tıklayın.
Kırmızı dairenin üzerine gelin ve dişli simgesine tıklayın.
Bu eylem Kesme Noktası Ayarlar penceresini açar.
Eylem onay kutusunu seçin.
Kırmızı dairenin bir kesme noktasından izleme noktasına geçtiğinizi gösteren bir baklavaya nasıl değiştiğine dikkat edin.
Çıkış Penceresi'nde ileti göster metin kutusunda oturum açmak istediğiniz iletiyi girin (ayrıntılar için bu makalenin sonraki bölümlerine bakın).
İzleme noktanız artık ayarlandı. Tek yapmak istediğiniz bazı bilgileri Çıkış Penceresi'ne kaydetmekse "Kapat" düğmesine basın.
İletinizin görüntülenip görüntülenmeyeceğini belirleyen koşullar eklemek istiyorsanız Koşullar onay kutusunu seçin.
Koşul için üç seçeneğiniz vardır: Koşullu İfade, Filtre ve İsabet Sayısı.
Kesme Noktası Ayarlar penceresindeki Eylem onay kutusunun altında bir çıkış dizesi belirterek izleme noktaları ayarlayabilirsiniz.
İzleme noktasını başlatmak için, önce izleme noktasını ayarlamak istediğiniz satır numarasının sol tarafındaki cilt payı öğesine tıklayın.
Kırmızı dairenin üzerine gelin ve dişli simgesine tıklayarak Kesme Noktası Ayarlar penceresini açın.
Eylem onay kutusunu seçin.
Kırmızı dairenin bir kesme noktasından izleme noktasına geçtiğinizi gösteren bir baklavaya nasıl değiştiğine dikkat edin.
Çıkış Penceresi'nde ileti göster metin kutusunda oturum açmak istediğiniz iletiyi girin (ayrıntılar için bu makalenin sonraki bölümlerine bakın).
İzleme noktanız artık ayarlandı. Tek yapmak istediğiniz bazı bilgileri Çıkış Penceresi'ne kaydetmekse "Kapat" düğmesine basın.
İletinizin görüntülenip görüntülenmeyeceğini belirleyen koşullar eklemek istiyorsanız Koşullar onay kutusunu seçin.
Koşul için üç seçeneğiniz vardır: Koşullu İfade, Filtre ve İsabet Sayısı.
Eylemler menüsü
Bu menü, bir iletiyi Çıkış penceresine kaydetmenize olanak tanır. çıktısını almak istediğiniz dizeleri ileti kutusuna yazın (tırnak işareti gerekmez). Değişkenlerin değerlerini görüntülemek istiyorsanız, küme ayracı içine eklediğinizden emin olun.
Örneğin, değişkenin counter
değerini çıkış konsolunda görüntülemek istiyorsanız, ileti metin kutusuna {counter} yazın.
Kapat'a tıklar ve ardından programda (F5) hata ayıklarsanız, Çıkış penceresinde aşağıdaki çıkışı görürsünüz.
Daha özel bilgiler görüntülemek için özel anahtar sözcükler de kullanabilirsiniz. Anahtar sözcüğü aşağıda gösterildiği gibi tam olarak girin (her anahtar sözcüğün önünde bir "$" kullanın ve anahtar sözcüğün kendisi için tüm büyük harflerini kullanın).
Anahtar sözcük | Görüntülenenler |
---|---|
$ADDRESS | Geçerli yönerge |
$CALLER | İşlev adı çağrılır |
$CALLSTACK | Çağrı yığını |
$FUNCTION | Geçerli işlev adı |
$PID | Process ID |
$PNAME | İşlem adı |
$TID | İş Parçacığı Kimliği |
$TNAME | İş parçacığı adı |
$TICK | Değer sayısı (Windows GetTickCount'tan) |
Bu menü, bir iletiyi Çıkış penceresine kaydetmenize olanak tanır. çıktısını almak istediğiniz dizeleri ileti kutusuna yazın (tırnak işareti gerekmez). Değişkenlerin değerlerini görüntülemek istiyorsanız, küme ayracı içine eklediğinizden emin olun.
Örneğin, değişkenin değerini counter
çıkış konsolunda görüntülemek istiyorsanız ileti metin kutusuna yazın {counter}
.
Kapat'a tıklar ve ardından programda (F5) hata ayıklarsanız, Çıkış penceresinde aşağıdaki çıkışı görürsünüz.
Daha özel bilgiler görüntülemek için özel anahtar sözcükler de kullanabilirsiniz. Anahtar sözcüğü aşağıda gösterildiği gibi tam olarak girin (her anahtar sözcüğün önünde bir "$" kullanın ve anahtar sözcüğün kendisi için tüm büyük harflerini kullanın).
Anahtar sözcük | Görüntülenenler |
---|---|
$ADDRESS |
Geçerli yönerge |
$CALLER |
İşlev adı çağrılır |
$CALLSTACK |
Çağrı yığını |
$FUNCTION |
Geçerli işlev adı |
$PID |
Process ID |
$PNAME |
İşlem adı |
$TID |
İş Parçacığı Kimliği |
$TNAME |
İş parçacığı adı |
$TICK |
Değer sayısı (Windows GetTickCount'tan) |
Koşullar menüsü
Koşullar, çıkış iletilerinizi filtrelemenizi sağlar, böylece bunlar yalnızca belirli senaryolarda görüntülenir. Kullanabileceğiniz üç ana koşul türü vardır.
Koşullu ifade
Koşullu ifade için, çıkış iletisi yalnızca belirli koşullar karşılandığında görüntülenir.
Koşullu ifadeler için, belirli bir koşul doğru olduğunda veya değiştiğinde bir iletinin çıkışını almak için izleme noktasını ayarlayabilirsiniz. Örneğin, yalnızca döngünün yinelemeleri for
sırasında sayacın değerini görüntülemek istiyorsanız, True seçeneğini belirleyip ileti metin kutusuna yazabilirsinizi%2 == 0
.
Döngünün yinelemesi for
değiştiğinde sayacın değerini yazdırmak istiyorsanız Değiştirildiğinde seçeneğini belirleyin ve ileti metin kutusuna yazıni
.
Değiştirildiğinde seçeneğinin davranışı farklı programlama dilleri için farklıdır.
- Yerel kod için hata ayıklayıcı koşulun ilk değerlendirmesini değişiklik olarak değerlendirmez, bu nedenle ilk değerlendirmede izleme noktasına isabet etmez.
- Yönetilen kod için hata ayıklayıcı, Değiştirildiğinde seçildikten sonra ilk değerlendirmede izleme noktasına isabet eder.
Koşulları ayarlarken kullanabileceğiniz geçerli ifadelere daha kapsamlı bir bakış için bkz . Hata ayıklayıcıdaki ifadeler.
Koşullu ifade için, çıkış iletisi yalnızca belirli koşullar karşılandığında görüntülenir.
Koşullu ifadeler için, belirli bir koşul doğru olduğunda veya değiştiğinde bir iletinin çıkışını almak için izleme noktasını ayarlayabilirsiniz. Örneğin, yalnızca döngünün yinelemeleri for
sırasında sayacın değerini görüntülemek istiyorsanız, True seçeneğini belirleyip ileti metin kutusuna yazabilirsinizi%2 == 0
.
Döngünün yinelemesi for
değiştiğinde sayacın değerini yazdırmak istiyorsanız Değiştirildiğinde seçeneğini belirleyin ve ileti metin kutusuna yazıni
.
Değiştirildiğinde seçeneğinin davranışı farklı programlama dilleri için farklıdır.
- Yerel kod için hata ayıklayıcı koşulun ilk değerlendirmesini değişiklik olarak değerlendirmez, bu nedenle ilk değerlendirmede izleme noktasına isabet etmez.
- Yönetilen kod için hata ayıklayıcı, Değiştirildiğinde seçildikten sonra ilk değerlendirmede izleme noktasına isabet eder.
Ayrıca, kodun belirli bir bölümüne Kesme Noktası ekleyerek ve Kesme Noktası Ayarlar menüsünde yalnızca aşağıdaki kesme noktasına ulaşıldığında etkinleştir: onay kutusunu seçerek izleme noktasının etkinleştirilebileceği koşulu ayarlayabilirsiniz. Seçim listesinden herhangi bir kesme noktası seçebilirsiniz.
Koşulları ayarlarken kullanabileceğiniz geçerli ifadelere daha kapsamlı bir bakış için bkz . Hata ayıklayıcıdaki ifadeler.
İsabet sayısı
İsabet sayısı koşulu, çıkışı yalnızca izleme noktasının ayarlandığı kod satırı belirtilen sayıda yürütüldükten sonra göndermenizi sağlar.
İsabet sayısı için, izleme noktasının ayarlandığı kod satırı belirli bir sayıda yürütüldüğünde bir iletinin çıkışını almayı seçebilirsiniz. Gereksinime bağlı olarak, belirtilen isabet sayısı değerine eşit veya bu değerin katı ya da değerinden büyük veya buna eşit olabilir. gereksinimlerinize en uygun seçeneği belirleyin ve alana ilgi yinelemesini temsil eden bir tamsayı değeri (örneğin, 5) yazın.
İsabet sayısı koşulu, çıkışı yalnızca izleme noktasının ayarlandığı kod satırı belirtilen sayıda yürütüldükten sonra göndermenizi sağlar.
İsabet sayısı için, izleme noktasının ayarlandığı kod satırı belirli bir sayıda yürütüldüğünde bir iletinin çıkışını almayı seçebilirsiniz. Gereksinime bağlı olarak, belirtilen isabet sayısı değerine eşit veya bu değerin katı ya da değerinden büyük veya buna eşit olabilir. gereksinimlerinize en uygun seçeneği belirleyin ve alana ilgi yinelemesini temsil eden bir tamsayı değeri (örneğin, 5) yazın.
İlk isabette kesme noktasını kaldırmak için, kesme noktasını kaldır onay kutusunu bir kez vurduktan sonra kaldır onay kutusunu da etkinleştirebilirsiniz.
Filtre
Filtre koşulu için hangi cihazların, işlemlerin veya iş parçacıklarının çıkışını gösterileceğini belirtin.
Filtre ifadeleri listesi:
- MachineName = "name"
- ProcessId = değer
- ProcessName = "name"
- ThreadId = değer
- ThreadName = "name"
Dizeleri (adlar gibi) çift tırnak içine alın. Değerler tırnak işareti olmadan girilebilir. Yan tümceleri (), (AND
), ||
(OR
NOT
) !
ve parantezleri kullanarak &
birleştirebilirsiniz.
Filtre koşulu için hangi cihazların, işlemlerin veya iş parçacıklarının çıkışını gösterileceğini belirtin.
Filtre ifadeleri listesi:
MachineName
= "name"ProcessId
= değerProcessName
= "name"ThreadId
= değerThreadName
= "name"
Dizeleri (adlar gibi) çift tırnak içine alın. Değerler tırnak işareti olmadan girilebilir. Yan tümceleri (), (AND
), ||
(OR
NOT
) !
ve parantezleri kullanarak &
birleştirebilirsiniz.
Dikkat edilmesi gereken noktalar
İzleme noktaları hata ayıklamayı daha temiz ve daha sorunsuz bir deneyim haline getirmek için tasarlanmıştır. Bunları kullanırken dikkat etmeniz gereken bazı noktalar vardır.
Bazen bir nesnenin özelliğini veya özniteliğini incelediğinizde, nesnenin değeri değişebilir. İnceleme sırasında değer değişirse, izleme noktası özelliğinin kendisinden kaynaklanan bir hata değildir. Ancak, nesneleri incelemek için izleme noktalarının kullanılması bu yanlışlıkla yapılan değişiklikleri önlemez.
İfadelerin Eylem iletisi kutusunda değerlendirilme şekli, geliştirme için kullanmakta olduğunuz dilden farklı olabilir. Örneğin, bir dizenin çıktısını almak için veya console.log()
kullanırken Debug.WriteLine()
normalde kullansanız bile iletiyi tırnak içine almanız gerekmez. Ayrıca, çıkış ifadelerine yönelik küme ayracı söz dizimi ({ }
), geliştirme dilinizdeki değerlerin çıkışını oluşturma kuralından da farklı olabilir. (Bununla birlikte, küme ayraçlarının ({ }
) içindeki içerik yine de geliştirme dilinizin söz dizimi kullanılarak yazılmalıdır).
Canlı bir uygulamada hata ayıklamaya çalışıyorsanız ve benzer bir özellik arıyorsanız Snapshot Debugger'daki günlük noktası özelliğimize göz atın. Anlık görüntü hata ayıklayıcısı, üretim uygulamalarındaki sorunları araştırmak için kullanılan bir araçtır. Günlük noktaları, kaynak kodu değiştirmek zorunda kalmadan Çıkış Penceresi'ne ileti göndermenize de olanak sağlar ve çalışan uygulamanızı etkilemez. Daha fazla bilgi için bkz . Canlı Azure uygulamasında hata ayıklama.