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.
Kullanıcı modu hata ayıklaması gerçekleştirirken, işlemleri ve iş parçacıklarını etkinleştirir, görüntüler, dondurur, çözer, askıya alır ve dağıtırsınız.
Geçerli veya etkin işlemi şu anda hata ayıklanan işlemdir. Benzer şekilde, geçerli veya etkin iş parçacığı, hata ayıklayıcının şu anda denetlemekte olduğu iş parçacığıdır. Birçok hata ayıklayıcı komutlarının eylemleri geçerli işlemin ve iş parçacığının kimliğine göre belirlenir. Geçerli işlem, hata ayıklayıcının kullandığı sanal adres eşlemelerini de belirler.
Hata ayıklama başladığında, geçerli işlem, hata ayıklayıcının bağlı olduğu veya hata ayıklayıcıyı tetikleyen özel duruma neden olan işlemdir. Benzer şekilde, hata ayıklayıcı işleme bağlandığında etkin olan veya özel duruma neden olan iş parçacığı geçerli iş parçacığıdır. Ancak, hata ayıklayıcısını kullanarak geçerli işlemi ve iş parçacığını değiştirebilir, tek tek iş parçacıklarını dondurabilir veya çözebilirsiniz.
Çekirdek modunda hata ayıklamada, işlemler ve iş parçacıkları bu bölümde açıklanan yöntemler tarafından denetlenmemektedir. İşlemlerin ve iş parçacıklarının çekirdek modunda nasıl işlendiği hakkında daha fazla bilgi için bkz. bağlamları değiştirme .
İşlemleri ve İş Parçacıklarını Görüntüleme
İşlem ve iş parçacığı bilgilerini görüntülemek için aşağıdaki yöntemleri kullanabilirsiniz:
| (İşlem Durumu) komutu
~ (İş Parçacığı Durumu) komutu
(Yalnızca WinDbg) İşlemler ve İş Parçacıkları penceresi
Geçerli İşlemi ve İş Parçacığını Ayarlamayı
Geçerli işlemi veya iş parçacığını değiştirmek için aşağıdaki yöntemleri kullanabilirsiniz:
|s (Geçerli İşlemi Ayarla) komutu
~s (Geçerli İş Parçacığını Ayarla) komutu
(Yalnızca WinDbg) İşlemler ve İş Parçacıkları penceresi
Thread'leri Dondurma ve Askıya Alma
Hata ayıklayıcı, iş parçacığını askıya veya iş parçacığını dondurarak iş parçacığının yürütülmesini değiştirebilir. Bu iki eylemin biraz farklı etkileri vardır.
Her iş parçacığının kendisiyle ilişkilendirilmiş bir askıya alma sayısı vardır. Bu sayı bir veya daha büyükse, sistem thread'i çalıştırmaz. Sayı sıfır veya daha düşükse, sistem uygun olduğunda iş parçacığını çalıştırır.
Genellikle her iş parçacığının askıya alma sayısı sıfırdır. Hata ayıklama aracı bir işleme eklendiğinde, bu işlemdeki tüm iş parçacıklarının askıya alma sayısını ileri atar. Hata ayıklayıcısı işlemden ayrılırsa, tüm askıya alma sayılarını birer birer azaltması gerekir. Hata ayıklayıcı işlemi yürütürken, tüm askıya alma sayılarını geçici olarak bir azaltır.
Aşağıdaki yöntemleri kullanarak hata ayıklayıcıdan herhangi bir iş parçacığının askıya alma sayısını denetleyebilirsiniz:
~n (İş Parçacığını Askıya Al) komutu, belirtilen iş parçacığının askıya alma sayısını bir artırır.
~m (İş Parçacığını Sürdür) komutu, belirtilen iş parçacığının askıya alma sayısını bir azaltır.
Bu komutların en yaygın kullanımı, belirli bir iş parçacığının askıya alma sayısını birden ikiye yükseltmektir. Hata ayıklayıcı işlemi yürüttüğünde veya işlemden ayrıldığında, iş parçacığının askıya alma sayısı bire düşer ve işlemdeki diğer iş parçacıkları yürütülse bile askıya alınmış olarak kalır.
müdahaleci olmayan hata ayıklamaişlemi gerçekleştirirken bile iş parçacıklarını askıya alabilirsiniz.
Hata ayıklayıcı, bir iş parçacığını dondurabilir de. Bu eylem, iş parçacığını bazı şekillerde askıya almaya benzer. Bununla birlikte, "dondurulmuş" yalnızca bir hata ayıklayıcı ayarıdır. Windows işletim sistemindeki hiçbir şey bu iş parçacığında herhangi bir şeyin farklı olduğunu tanımıyor.
Varsayılan olarak, tüm iş parçacıkları donmamış olur. Hata ayıklayıcı bir işlemin yürütülmesine neden olduğunda, dondurulan iş parçacıkları yürütülmez. Ancak, hata ayıklayıcı işlemden ayrılırsa, tüm iş parçacıkları çözüler.
Bireysel thread'leri dondurmak ve çözmek için aşağıdaki yöntemleri kullanabilirsiniz:
~f (İş Parçacığını Dondur)komutu belirtilen iş parçacığını dondurur.
~u (İş Parçacığını Çöz) komutu belirtilen iş parçacığını çözer.
Her durumda, hata ayıklayıcı hedef süreci durdurduğunda, hedef sürece ait iş parçacıkları asla çalışmaz. Bir thread'in askıya alınma sayısı, yalnızca hata ayıklayıcı süreci çalıştırdığında veya ayırdığında thread'in davranışını etkiler. Dondurulmuş durum, iş parçacığının davranışını yalnızca hata ayıklayıcı işlemi yürüttüğünde etkiler.
Diğer Komutlarda İş Parçacıkları ve İşlemleri
İş parçacığı tanımlayıcıları veya işlem tanımlayıcılarını diğer birçok komut öncesinde ekleyebilirsiniz. Daha fazla bilgi için tek tek komut konularına bakın.
Birçok komut ve uzantı komutunun önüne ~e (Thread-Specific Komut) niteleyici ekleyebilirsiniz. Bu niteleyici komutun belirtilen iş parçacığına göre yürütülmesine neden olur. Bu niteleyici özellikle birden fazla iş parçacığına komut uygulamak istiyorsanız kullanışlıdır. Örneğin, aşağıdaki komut hata ayıklanan her iş parçacığı için !gle uzantısı komutunu yineler.
~*e !gle
Çoklu Sistemler
Hata ayıklayıcı aynı anda birden çok hedefe bağlanabilir. Bu işlemler döküm dosyalarını içerdiğinde veya birden fazla bilgisayarda canlı hedefler içerdiğinde, hata ayıklayıcı her eylem için bir sisteme, işleme ve iş parçacığına başvurur. Bu tür hata ayıklama hakkında daha fazla bilgi için bkz. Birden Çok Hedefte Hata Ayıklama.