Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Visual Studio 2015'te, ifade değerlendiricileri uygulama yöntemi kullanım dışıdır. CLR ifade değerlendiricilerini uygulama hakkında bilgi için bkz. CLR ifade değerlendiricileri ve Yönetilen ifade değerlendirici örneği.
Yürütme duraklatıldığında Visual Studio, izleme listesindeki her ifadenin geçerli değerini belirlemek için hata ayıklama altyapısını (DE) çağırır. DE, her ifadeyi bir ifade değerlendirici (EE) kullanarak değerlendirir ve Visual Studio değerini gözcü penceresinde görüntüler.
Aşağıda, izleme listesi ifadesinin nasıl değerlendirıldığına genel bir bakış sağlanır:
Visual Studio, ifadeleri değerlendirmek için kullanılabilecek bir ifade bağlamı almak için DE'nin GetExpressionContext öğesini çağırır.
İzleme listesindeki her ifade için Visual Studio, ifade metnini ayrıştırılmış ifadeye dönüştürmek için ParseText'i çağırır.
IDebugExpressionContext2::ParseTextParse çağrısı yaparak metni ayrıştırma işleminin gerçek işini yapar ve bir IDebugParsedExpression nesnesi oluşturur.IDebugExpressionContext2::ParseTextbir IDebugExpression2 nesnesi oluşturur ve nesneyi içine yerleştirirIDebugParsedExpression. BuIDebugExpression2nesne daha sonra Visual Studio'ya döndürülür.Visual Studio, ayrıştırılan ifadeyi değerlendirmek için EvaluateSync'i çağırır.
IDebugExpression2::EvaluateSyncGerçek değerlendirmeyi yapmak ve Visual Studio'ya döndürülen bir IDebugProperty2 nesnesi oluşturmak için EvaluateSync çağrısı geçirir.Visual Studio, daha sonra izleme listesinde görüntülenen ifadenin değerini almak için GetPropertyInfo'yu çağırır.
Ayrıştır ve sonra değerlendir
Karmaşık bir ifadeyi ayrıştırma işlemi değerlendirmekten çok daha uzun sürebileceğinden, ifadeyi değerlendirme işlemi iki adıma ayrılır: 1) ifadeyi ayrıştırma ve 2) ayrıştırılan ifadeyi değerlendirme. Bu şekilde, değerlendirme birçok kez gerçekleşebilir, ancak ifadenin yalnızca bir kez ayrıştırılması gerekir. EE'den döndürülen ara ayrıştırılmış ifade, önce kapsüllenerek DE'den bir IDebugExpression2 nesnesi olarak döndürülen IDebugParsedExpression nesnesi içinde yer alır.
IDebugExpression nesnesi, tüm değerlendirme işini IDebugParsedExpression nesnesine devreder.
Uyarı
Visual Studio bunu varsaysa bile bir EE'nin bu iki adımlı işleme uyması gerekmez; EE, EvaluateSync çağrıldığında aynı adımda ayrıştırabilir ve değerlendirebilir (örneğin, MyCEE örneği böyle çalışır). Diliniz karmaşık ifadeler oluşturabiliyorsa ayrıştırma adımını değerlendirme adımından ayırmak isteyebilirsiniz. Bu, birçok izleme ifadesi gösterildiğinde Visual Studio hata ayıklayıcısının performansını artırabilir.
Bu bölümde
İfade değerlendirmesinin örnek uygulaması , ifade değerlendirme sürecinde adım adım ilerletmek için MyCEE örneğini kullanır.
İzleme ifadesinin değerlendirilmesi başarılı bir ifade ayrıştırıldığında neler olduğunu açıklar.
İlgili içerik
Değerlendirme bağlamı: hata ayıklama motoru (DE) ifade değerlendiriciyi (EE) çağırdığında geçirilen bağımsız değişkenleri sağlar.