Aracılığıyla paylaş


Girişim Olmadan Hata Ayıklama (Kullanıcı Modu)

Bir kullanıcı modu uygulaması zaten çalışıyorsa, hata ayıklayıcı müdahale etmeksizin hata ayıklayabilir. Girişim yapmayan hata ayıklama ile, çok fazla hata ayıklama eyleminiz yoktur. Ancak, hata ayıklayıcının hedef uygulamaya müdahalesini en aza indirebilirsiniz. Hedef uygulama yanıt vermeyi durdurduysa, invaziv olmayan hata ayıklama faydalıdır.

Girişimsel olmayan hata ayıklamada, hata ayıklayıcı aslında hedef uygulamaya eklenmez. Hata ayıklayıcı, hedefin tüm thread'lerini askıya alır ve hedefin belleğine, kayıtlarına ve benzeri bilgilere erişebilir. Ancak hata ayıklayıcı hedefi denetleyemediğinden g (Go) gibi komutlar çalışmaz.

Girişimsel olmayan hata ayıklama sırasında izin verilmeyen komutları çalıştırmayı denerseniz, şu hata iletisini alırsınız: "Hata ayıklayıcı eklenmediğinden işlem yürütmesi izlenemez."

Hata Ayıklanacak İşlemi Seçme

Hedef uygulamayı işlem kimliğine (PID) veya işlem adına göre belirtebilirsiniz.

Uygulamayı ada göre belirtirseniz, dosya adı uzantısı da dahil olmak üzere işlemin tam adını kullanmanız gerekir. İki işlem aynı ada sahipse, bunun yerine işlem kimliğini kullanmanız gerekir.

İşlem kimliğini ve işlem adını belirleme hakkında daha fazla bilgi için bkz. İşlem Kimliğini Bulma.

Girişimsel olmayan bir hata ayıklama oturumunu başlatma ve durdurma hakkında bilgi için aşağıdaki konulara bakın:

CDB Komut Satırı

CDB komut satırından çalışan bir işlemin hatalarını ayıklamak için aşağıdaki söz diziminde -pv seçeneğini, -p seçeneğini ve işlem kimliğini belirtin.

cdb -pv -pProcessID

Alternatif olarak, invaziv olmayan bir şekilde çalışan bir işlemin hatalarını ayıklamak için işlem adını belirterek bunun yerine aşağıdaki söz dizimini kullanın.

cdb -pv -pnProcessName

Diğer birçok yararlı komut satırı seçeneği vardır. Komut satırı söz dizimi hakkında daha fazla bilgi için bkz. CDB Command-Line Seçenekleri.

WinDbg Komut Satırı

WinDbg komut satırından bir işlemi invaziv olmayan bir şekilde hata ayıklamak için aşağıdaki sözdiziminde -pv seçeneğini, -p seçeneğini ve işlem kimliğini belirtin.

windbg -pv -pProcessID

Alternatif olarak, invaziv olmayan bir şekilde çalışan bir işlemin hatalarını ayıklamak için işlem adını belirterek bunun yerine aşağıdaki söz dizimini kullanın.

windbg -pv -pnProcessName

Diğer birçok yararlı komut satırı seçeneği vardır. Komut satırı söz dizimi hakkında daha fazla bilgi için bkz. WinDbg Command-Line Seçenekleri.

WinDbg Menüsü

WinDbg uyku modundayken, Dosya menüsünde bir İşleme Bağlan'a tıklayarak veya F6 tuşuna basarak çalışmakta olan bir işlemi müdahaleci olmayan bir şekilde hata ayıklayabilirsiniz.

İşleme Ekle iletişim kutusu görüntülendiğinde, Yıkıcı Olmayan onay kutusunu seçin. Ardından, istediğiniz işlem kimliğini ve adını içeren satırı seçin. (İşlem Kimliği kutusuna işlem kimliğini de girebilirsiniz.) Son olarak Tamam'a tıklayın.

Hata Ayıklama Komut Penceresi

Hata ayıklayıcı zaten etkinse, Hata Ayıklayıcı Komut penceresindeki.attach -v (İşleme Ekle) komutunu kullanarak çalışan bir işlemde müdahale etmeden hata ayıklama yapabilirsiniz.

Hata ayıklayıcı zaten bir veya daha fazla işlemde invaziv hata ayıklarsa .attach komutunu kullanabilirsiniz. Bu komutu uyku modunda değilse CDB'de kullanabilirsiniz, ancak uykuda olmayan bir WinDbg'de kullanamazsınız.

.attach -v komutu başarılı olursa, hata ayıklayıcısı bir sonraki yürütme komutunda belirtilen işlemde hata ayıklar. Girişimsiz hata ayıklama sırasında çalıştırmaya izin verilmediğinden, hata ayıklayıcı aynı anda birden fazla süreç üzerinde girişimsiz hata ayıklama yapamaz. Bu kısıtlama ayrıca .attach -v komutunun kullanılması, var olan bir invaziv hata ayıklama oturumunu daha az kullanışlı hale getirebileceği anlamına gelir.

Hata Ayıklama Oturumunu Başlatma

Hata ayıklama oturumu başlatma hakkında daha fazla bilgi için bkz. Hata Ayıklayıcı İşlemi.