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ı modunda bir hedef uygulamayı veya çekirdek modunda bir hedef bilgisayarı hata ayıklarken, hedef çalışıyor veya durdurulmuşolabilir.
Hata ayıklayıcı bir çekirdek modu hedefine bağlandığında, hata ayıklayıcı, -bkomut satırı seçeneğinikullanmadığınız sürece hedefi çalışır durumda bırakır, hedef sistem yanıt vermeyi durdurmuşsa (yani, çökmüş) veya daha önceki bir çekirdek hata ayıklama eylemi nedeniyle hala durdurulmuşsa.
Hata ayıklayıcı başlatıldığında veya kullanıcı modu hedefine bağlandığında, -g komut satırı seçeneğini kullanmadığınız sürece hata ayıklayıcı hedefi hemen durdurur. Daha fazla bilgi için bkz. İlk Kesme Noktası.
Hedef Çalışırken
Hedef çalıştığında hata ayıklayıcı işlemlerinin çoğu kullanılamaz.
Çalışan bir hedefi durdurmak istiyorsanız, Kesme komutunu verebilirsiniz. Bu komut, hata ayıklayıcıyı hedef'de duraklatır. Diğer bir ifadeyle, hata ayıklayıcı hedefi durdurur ve tüm denetim hata ayıklayıcıya verilir. Uygulama hemen bozulmayabilir. Örneğin, tüm iş parçacıkları şu anda sistem kodunu yürütüyorsa veya bekleme işlemindeyse, uygulama ancak kontrol uygulamanın koduna döndükten sonra duraklar.
Çalışan bir hedef bir özel durumla karşılaşırsa, belirli olaylar oluşursa, kesme noktası isabet edilirse veya uygulama normal şekilde kapanırsa hedef hata ayıklayıcıya. Bu eylem hedefi durdurur ve hata ayıklayıcıya tüm denetimi verir. Hata Ayıklayıcı Komut penceresinde bir mesaj görüntülenir ve hata, olay ya da kesme noktası hakkında bilgi verir.
Hedef Durdurulduğunda
Hedefin yürütülmesini başlatmak veya denetlemek için aşağıdakileri yapabilirsiniz:
Uygulamanın çalışmaya başlamasına neden olmak için Git komutunu çalıştırın.
Uygulamayı her seferinde bir yönerge ile ilerletmek için Step Into veya Step Over komutlarını kullanın. Bir işlev çağrısı gerçekleşirse, Adım İçeriye Gir komutu işleve girer ve her yönergeyi adım adım izleyerek devam eder. Step Over işlev çağrısını tek bir adım olarak ele alır. Hata ayıklayıcı Derleme Modu'nda olduğunda, adımlama her seferinde bir makine talimatı ile gerçekleşir. Hata ayıklayıcı Kaynak Modu'nda olduğunda, adımlama her seferde bir kaynak satırında gerçekleşir.
Geçerli işlevi tamamlamak ve dönüş gerçekleştiğinde durdurmak için Dışarı Adımla veya İzle ve İzle komutlarını kullanın. Geçerli işlev bitene kadar Adım Dışarı komutu devam eder. İzle ve İzle mevcut fonksiyon bitene kadar devam eder ve fonksiyonun çağrılarının özetini görüntüler. Ancak, söz konusu işlevin ilk yönergesinde İzleme ve komutunu girmeniz gerekir.
Bir özel durum oluşursa, yürütmeye devam etmek ve özel durumun durumunu denetlemek için Özel Durum İşlenmiş ile Git ve Özel Durum İşlenmedi ile Git komutlarını kullanabilirsiniz. (Özel durumlar hakkında daha fazla bilgi için bkz. Özel Durumları ve Olayları Denetleme.)
(Yalnızca WinDbg) Ayrıştırma penceresi veya Kaynak penceresinde bir satır ve ardından İmleç Çalıştır komutunu kullanırsanız, program seçili satırla karşılaşana kadar çalışır.
(Yalnızca Kullanıcı Modu) Hedef uygulamayı kapatıp baştan yeniden başlatmak için Yeniden Başlat komutunu kullanın. Bu komutu yalnızca hata ayıklayıcının oluşturduğu bir işlemle kullanabilirsiniz. İşlem yeniden başlatıldıktan sonra hemen hata ayıklayıcıya girer.
(Yalnızca WinDbg) Hedef uygulamayı kapatmak ve hata ayıklayıcıyı temizlemek için Hata Ayıklamayı Durdur komutunu kullanın. Bu komut, farklı bir hedefte hata ayıklamaya başlamanızı sağlar.
Komut Formları
Hedefin yürütülmesini başlatmaya veya denetlemeye yönelik komutların çoğu metin komutları, menü komutları, araç çubuğu düğmeleri ve kısayol tuşları olarak bulunur. Temel metin komutları olarak bu komutları CDB, KD veya WinDbg'de kullanabilirsiniz. (Komutların metin biçimi genellikle program sayacının konumunu değiştirme veya sabit sayıda yönerge yürütme gibi ek seçenekleri destekler.) WinDbg'de menü komutlarını, araç çubuğu düğmelerini ve kısayol tuşlarını kullanabilirsiniz.
Aşağıdaki formlardaki komutları kullanabilirsiniz.
| Komut | WinDbg komutu | WinDbg kısayol tuşları | Etki |
|---|---|---|---|
Hata Ayıklama | İmleç'e Çalıştır |
F7 CTRL + F10 |
(Sadece WinDbg için) İmlecin işaretlediği satıra ulaşana kadar yürütür. |
|
Hata Ayıklama | Hata Ayıklamayı Durdur |
SHIFT + F5 |
Tüm hata ayıklamayı durdurur ve hedefi kapatır. |
|
(yalnızca CDB/KD) CTRL+C |
Hata Ayıklama | Kesme |
CTRL + BREAK |
Yürütme durdurulur ve hata ayıklayıcı hedefe girer. |
Hata Ayıklama | Yeni -den başlatın |
CTRL + SHIFT + F5 |
(Yalnızca kullanıcı modu) Hedef uygulamayı yeniden başlatır. |
|
Hata Ayıklama | Çalıştır |
F5 |
Hedef özgürce gerçekleştirilir. |
|
koşullu kesme noktasısonra yürütmeyi sürdürür. |
|||
Hata Ayıklama | İşlenmiş İstisna |
g (Go)ile aynıdır, ancak geçerli özel durum işlenmiş olarak değerlendirilir. |
||
Hata Ayıklama | İşlenmeyen Özel Duruma Geç |
g (Go)ile aynıdır, ancak geçerli özel durum işlenmemiş sayılır. |
||
Debug | Dışarı Çık |
SHIFT + F11 |
Geçerli işlev tamamlanana kadar hedef yürütülmeye devam eder. |
|
Hata Ayıklama | Adım Atla |
F10 |
Hedef bir yönerge yürütür. Bu yönerge bir işlev çağrısıysa, bu işlev tek bir adım olarak yürütülür. |
|
Hedef, belirtilen adrese ulaşana kadar çalıştırılır. Bu işlevdeki tüm adımlar görüntülenir (ancak çağrılan işlevlerdeki adımlar görüntülenmez). |
|||
Hedef, sonraki çağrı yönergesine kadar yürütülür. Geçerli yönerge çağrısı yönergesi ise, bu çağrı tamamen gerçekleştirilir ve işlem, sonraki çağrıolana kadar devam eder. |
|||
Hedef, bir çağrı yönergesine veya bir dönüş yönergesine ulaşana kadar yürütülür. |
|||
Hedef, koşullu veya koşulsuz dallar, çağrılar, dönüşler ve sistem çağrıları dahil olmak üzere herhangi bir dallanma yönergesine ulaşana kadar yürütülür. |
|||
Hedef, geri dönüş komutuna ulaşana kadar çalıştırılır. |
|||
Hata Ayıklama | İçine Gir |
F11 F8 |
Hedef bir komut çalıştırır. Bu yönerge bir işlev çağrısıysa, hata ayıklayıcısı bu çağrıyı izler. |
|
Hedef, tanımlanmış adrese ulaşana kadar çalıştırılır. Bu işlevdeki ve işlev olarak adlandırılan tüm adımlar görüntülenir. |
|||
(Çekirdek modu hariç tüm modlar yalnızca x86 tabanlı sistemlerde) Hedef, sonraki dal yönergesine ulaşana kadar yürütülür. |
|||
Hedef, sonraki çağrı yönergesine kadar yürütülür. Mevcut talimat bir çağrısı talimat ise, yeni bir çağrı'e ulaşılana kadar talimat takip edilir. |
|||
Hedef, bir çağrı yönergesine ulaşana veya bir iade yönergesi yürütülene kadar çalıştırılır. Geçerli yönerge bir çağrı yönergesiyse veya dönüş yönergesiyse, yeni bir çağrı veya dönüş ulaşılana kadar yönerge izlenir. |
|||
Hedef, koşullu veya koşulsuz dallanma, çağrı, dönüş ve sistem çağrısı gibi herhangi bir dallanma yönergesine ulaşana kadar çalıştırılır. Geçerli yönerge bir dallanma yönergesiyse, yeni bir dallanma yönergesine ulaşılana kadar yönerge izlenmeye devam eder. |
|||
Hedef, geri dönüş yönergesine ulaşana kadar yürütülür. Geçerli talimat bir dönüş talimatsa, yeni bir dönüş'e ulaşılana kadar talimat izlenir. |
|||
Hedef, belirtilen işlevin tamamı bitene kadar yürütülür. ardından istatistikler görüntülenir. |
Hedef bilgisayarı yeniden başlatma hakkında daha fazla bilgi için bkz. Hedef Bilgisayarı Kilitlenme ve Yeniden Başlatma.
Command-Line Seçenekler
Uygulamanın başlatıldığında veya yüklendiğinde hemen durmasını istemiyorsanız CDB veya WinDbg'yi -g komut satırı seçeneğiyle birlikte kullanın. Bu durum hakkında daha fazla bilgi için bkz. İlk Kesme Noktası.
CDB ve WinDbg, -Gkomut satırı seçeneği'ü de destekler. Bu seçenek, uygulama düzgün tamamlanırsa hata ayıklama oturumunun sona ermesini sağlar.
Aşağıdaki komut, uygulamayı baştan sona çalıştırmaya çalışır ve hata ayıklayıcı istemi yalnızca bir hata oluştuğunda görüntülenir.
cdb -g -G ApplicationName
Kesme zaman aşımını ayarlamak için -ptkomut satırı seçeneğini kullanabilirsiniz. Hedefin hata ayıklayıcıyla iletişim kuramamasına neden olabilecek bazı sorunlar vardır. Bir kesme komutu verilirse ve hata ayıklayıcı bu süreden sonra hedefe giremezse, o zaman hata ayıklayıcı "Kesme zaman aşımına uğradı" iletisini görüntüler.
Bu noktada hata ayıklayıcı hedefe girmeye çalışmayı durdurur. Bunun yerine, hata ayıklayıcı hedefi duraklatır ve hedef uygulamayı incelemenize (ancak denetlemenize) olanak tanır.
Varsayılan zaman aşımı 30 saniyedir.