Aracılığıyla paylaş


Visual Studio Hata Ayıklayıcıyı Başlatma, Kesme, Durdurma ve Bu Hata Ayıklayıcıya Gitme

Bu konuda

Bu konuda

Hata Ayıklamayı Başlat

  • Bir işleme ekleme

  • Otomatik olarak uygulama içinde hata ayıklayıcıda Başlat

Kod bir hata ayıklama oturumu içinde gezinme

  • Kesme noktaları veya tüm kesme kullanarak kod içine kesme

  • İçine, üzerinden veya kod dışına adım

  • Belirtilen konum ya da işlev Çalıştır

  • Yürütülecek sonraki deyimi Ayarla

  • Sınırlamak için yalnızca benim kod atlama

  • Sistem çağrılarını adımlar

  • Özellikler ve yönetilen kod işleçlerin mla

Hata ayıklamayı Durdur

Hata Ayıklamayı Başlat

Çözümünüz açık olduğunda ise Visual Studio hata ayıklama başlatmak için üç seçeneğiniz vardır:

Seçim hata ayıklama, Start Debugging komutunu (klavye: F5).

Sizin app başlar ve sonra kadar çalışır:

  • Hata Ayıklayıcı kesme noktası ulaşır.

  • Seçtiğiniz Stop Debugging , hata ayıklama menüsü.

  • Bir özel durum oluşturulur.

  • Uygulamadan çıkar.

Seçim hata ayıklama, Step Into (klavye: F11) veya hata ayıklama, Step Over (klavye: F10).

Sizin app başlatır ve sonra ilk satırda keser.

Bir kaynak penceresinde yürütülebilir kod satırını seçin ve Seç İmle bağlam menüsünde.

App başlar ve onu bir kesme noktası veya imlecin geçerli konumuna ulaşana kadar çalışır, hangisi önce gelir.

y740d9d3.collapse_all(tr-tr,VS.110).gifBir işleme ekleme

Visual Studio dışında bir işlemde çalışan bir program eklemek için hata ayıklayıcı da yapabilirsiniz. Bir programa iliştirdikten sonra hata ayıklayıcı yürütme komutları kullanın, program durumu incelemek ve benzeri. Program İnceleme yapma, program hata ayıklama bilgileri ile oluşturulmuş olup ve programın kaynak koduna sahip olup ve ortak dil çalışma zamanı JIT derleyicisi hata ayıklama bilgilerini izleme mı olup olmadığına bağlı olarak sınırlı olabilir.

Yerel makinenizde çalışan bir işlem eklemek için

Seçim hata ayıklama, işlemine eklemek. Üzerinde İşleme Ekle iletişim kutusunda, gelen işlem Kullanılabilir işlemler listelemek ve sonra Attach.

İşlem iletişim kutusuna ekleyin.

Daha fazla bilgi için bkz. Çalışan işlemleri iliştirme.

y740d9d3.collapse_all(tr-tr,VS.110).gifOtomatik olarak uygulama içinde hata ayıklayıcıda Başlat

Bazı durumlarda, başka bir işlem tarafından başlatılan bir uygulama için başlangıç kodunu ayıklamanız gerekebilir. Örnekler ve özel kurulum işlemlerini içerir. Bu senaryolarda, hata ayıklayıcısını başlatma sahip ve uygulama başladığında otomatik olarak ekleyebilirsiniz.

  1. Kayıt Defteri Düzenleyicisi'ni başlatın (regedit.exe).

  2. Gidin HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image dosya yürütme seçenekleri klasör.

  3. App hata ayıklayıcıda başlatmak istediğiniz klasörü seçin.

    App adını bir alt klasörü olarak listelenmiyorsa, seçin Görüntü dosyası yürütme seçenekleri ve sonra Yeni, anahtar kısayol menüsünde. Yeni bir anahtar seçin, yeniden kısayol menüsünde ve app adını girin.

  4. Uygulama klasörüne kısayol menüsünden seçin Yeni, Dize değeri.

  5. Yeni değeri adını değiştirme New Value için hata ayıklayıcı.

  6. Hata Ayıklayıcı girdi kısayol menüsünden seçin Değiştir.

  7. Dize Düzenle iletişim kutusunda, yazın vsjitdebugger.exe , Değer verisi kutusu.

    Düzenle iletişim kutusu dize

Otomatik hata ayıklayıcısını başlatma girdisi regedit.exe dosyasındaki

Bu konuda

Kod bir hata ayıklama oturumu içinde gezinme

y740d9d3.collapse_all(tr-tr,VS.110).gifKesme noktaları veya tüm kesme kullanarak kod içine kesme

Visual Studio hata ayıklayıcı uygulama hata ayıklaması yaptığınız zaman, uygulama ya da değil (yürütme) çalışan veya onu kesme modunda olduğunu.

Hata ayıklayıcı yürütme bir kesme noktasına ulaştığında veya özel bir durum oluştuğunda uygulama yürütülmesini keser. Ayrıca, istediğiniz zaman el ile yürütme kesebilirsiniz.

Bir kesme noktası, belirli bir noktada sizin app yürütülmesini geçici olarak askıya almak için hata ayıklayıcı bildiren bir sinyaldir. Kesme noktasında yürütme askıya alındığında, programınızın kesme modunda olduğu belirtilmektedir. Kesme moduna girme değil durdurmak veya programın yürütülmesini bitirmek; herhangi bir anda yürütülmesine devam ettirilebilir.

Locals penceresinde değişken değerlerini görüntülemek veya izleme penceresindeki ifadeleri hesaplama gibi birçok hata ayıklayıcı, kesme modunda kullanılabilir özelliklerdir. Sizin app tüm öğeleri kalır (İşlevler, değişkenlerin ve nesnelerin kalır bellekte, örneğin), ancak kendi hareketleri ve faaliyetleri askıya alındı. Kesme modu sırasında öğelerin konumlarını ve ihlalleri veya hataları aramak için durumları inceleyebilirsiniz. Break modunda app ayarlamalar da yapabilirsiniz

Koşulların sayısına göre yürütme askıya almak için kesme noktalarını yapılandırabilirsiniz. Bkz: Kesme noktaları ve Tracepoints kullanarak Bu bölümde kodu içine iki temel yolu açıklanmaktadır.

Kod içinde ayarlamak kesme noktaları

Kodunuzda basit bir kesme noktası ayarlamak için Visual Studio Düzenleyicisi içinde kaynak dosyasını açın. İmlecin en kesin ve sonra istediğiniz kod satırında set kesme, Kesme noktası Ekle bağlam menüsünde (klavye: F9. Hata ayıklayıcı yürütme sağ çizgi yürütülmeden önce keser.

Kesme noktası ayarlamak

Visual Studio'da kesme noktalarını zengin koşullu kesme noktaları ve tracepoints gibi ek işlevsellikler sağlar. Bkz: Kesme noktaları ve Tracepoints kullanarak

Kodu el ile kesme

Kullanılabilen bir sonraki satıra yürütülen uygulama kodunun içine kesmek için hata ayıklama, Sonu tüm (klavye: Ctrl+Alt+Break).

  • Yalnızca benim kodu seçeneği etkin hata ayıklaması yapıyorsanız, projenizde sonraki kod satırını bölün. Bkz: Restrict stepping to Just My Code

  • Birden çok program hata ayıklaması yapıyorsanız, bir kesme noktası veya tüm kesme komutu varsayılan olarak ayıklanacak tüm programları etkiler. Bkz: Change the break behavior of multiple processes bu konuda.

  • Kesme olmadan karşılık gelen kaynak kodu yürütülürken veya simge (.pdf) dosyalarını), hata ayıklayıcı görüntüler bir Kaynak dosya bulunamadı veya Simge bulunamadı uygun dosyaları bulmanıza yardımcı olabilecek sayfa. Bkz: Simge (.pdb), Kaynak ve İkili Dosyaları Bulma

    Destekleyici dosyaları erişemiyorsanız, parçalara ayırma penceresinde derleme yönergeleri hala hata ayıklaması yapabilirsiniz.

y740d9d3.collapse_all(tr-tr,VS.110).gifİçine, üzerinden veya kod dışına adım

En yaygın hata ayıklama yordamlardan biri olan stepping. Adımlama bir kod satırı aynı anda yürütülüyor. Bir kesme noktası için hata ayıklayıcıyı çalıştırmak gibi yürütme durdu üç kullanabilirsiniz hata ayıklama kod boyunca adım adım menü komutları:

Menü Komutu

Klavye Kısayol Tuşu

Tanımlama

Adımlama

F11

Satır bir işlev çağrısı içeriyorsa Step Into sadece çağrı kendisi yapar, sonra işlevin içindeki kod ilk satırında durur. Aksi halde, Step Into sonraki deyimi çalıştırır.

Atlama

F10

Satır bir işlev çağrısı içeriyorsa Step Over çağrılan işlev yürütür ve çağıran işlevin içinde kodunun ilk satırında durur. Aksi halde, Step Into sonraki deyimi çalıştırır.

Adım

Shift+F11

Step Out kadar sonra sonlarından çağıran işlevin dönüş noktası işlevini verir kod yürütülmesine devam ettirir.

  • Bir iç içe geçmiş işlev çağrısında Step Into içine adım işlevi en çok derine yuvalanmış. Kullanırsanız, Step Into çağrısı gibi üzerinde Func1(Func2()), hata ayıklayıcı adımlar işlev Func2.

  • Hata ayıklayıcı gerçekte fiziksel satırları yerine kod deyimleri ile adımları. Örneğin bir if yan tümcesi bir satırda yazılabilir:

    int x = 42;
    string s = "Not answered";
    if( int x == 42) s = "Answered!";
    
    Dim x As Integet = 42
    Dim s As String = "Not answered"
    If x = 42 Then s = "Answered!"
    

    Bu satır adım, hata ayıklayıcı'yı bir adım ve sonuç olarak başka bir koşulu değerlendirir (Bu örnekte, koşul doğru olduğunda).

y740d9d3.collapse_all(tr-tr,VS.110).gifBelirtilen konum ya da işlev Çalıştır

Bazen kod belirli bir noktaya yürütün ve sonra yürütme durdurmak isteyeceksiniz. Bölmek istediğiniz konumda bir kesme, seçim hata ayıklama, Start Debugging komutunu hata ayıklama, başlatmadıysanız ya da veya hata ayıklama, devam. (Her iki durumda F5 kısayol tuşu bağlıdır). Hata ayıklayıcının kodun yürütülmesine sonraki kesme noktasındaki durdurur. Seçim hata ayıklama, devam kesme noktasına ulaşıncaya kadar istediğiniz. Bkz: Set breakpoints in the code bu konuda.

Ayrıca, Kod Düzenleyicisi'nde imlecin için çalıştırmak veya belirtilen işlev için çalıştırın.

İmleç konumuna çalıştırın

İmleç konumuna çalıştırmak için bir yürütülebilir kod satırı, bir kaynak penceresinde imleci yerleştirin. Düzenleyicisi'nin içerik menüsünden seçin İmle.

Bir işleve çağrı yığını üzerinde çalıştırın.

İçinde Call Stack penceresinde, işlev seçin ve İmle bağlam menüsünden.

Adı tarafından belirtilen bir işlev Çalıştır

Belirtilen işlev ulaşana kadar uygulamanızı çalıştırmak için hata ayıklayıcı komut. Çağrı yığını seçin veya işlev adına göre belirtebilirsiniz.

Bir işlev adıyla belirtmek için seçin hata ayıklama, Yeni kesme, fonksiyonu sonu, sonra işlev ve diğer tanımlayıcı bilgiler adını girin.

Yeni kesme noktası iletişim kutusu

İşlevi aşırı yüklü veya birden çok ad alanında, istediğiniz işlevleri seçin Kesme noktaları seçin iletişim kutusu.

Kesme noktaları iletişim kutusunu seçin.

y740d9d3.collapse_all(tr-tr,VS.110).gifYürütülecek sonraki deyimi Ayarla

Ayıklayıcıya girilsin sonra yürütülmek üzere kod sonraki deyimi ayarlamak için yürütme noktası taşıyabilirsiniz. Yürütülecek sonraki deyimi konumunu kaynak veya parçalara ayırma penceresinin kenar boşluğunda sarı bir ok başını işaretler. Bu ok ucu taşıyarak, kodun bir bölümünü atlamak veya daha önce yürütülen bir satır döndürür. Bu bilinen bir hata içeren kodun bir bölümünü atlama gibi durumlar için kullanabilirsiniz.

Example2

Next deyimini yürütmek için, aşağıdaki yordamlardan birini kullanın:

  • Kaynak penceresinde, sarı ok ucu aynı kaynak dosyada sonraki deyimi ayarlamak istediğiniz bir konuma sürükleyin.

  • İmleci seçin ve ardından yürütmek istediğiniz satır bir kaynak penceresinde ayarlayın Sonraki deyimi Ayarla bağlam menüsünde.

  • Imleç penceresinde imleci seçin ve ardından yürütmek istediğiniz derleme yönergesi ayarlamak Sonraki deyimi Ayarla bağlam menüsünde.

Uyarı

Sonraki deyimi ayarı doğrudan yeni bir konuma atlamak program sayacı neden olur.Bu komutu dikkatle kullanın:

  • Eski ve yeni yürütme noktaları arasında yönergeleri yürütülmez.

  • Yürütme noktası geriye doğru taşırsanız, aradaki yönergeleri geri değildir.

  • Sonraki ifade başka bir işlev veya kapsam genellikle taşıma çalışma zamanı hata veya özel durum neden çağrı yığını bozulmasına neden olur.Başka bir kapsam için bir sonraki ifade taşımayı deneyin, hata ayıklayıcı'yı bir uyarıyı içeren bir iletişim kutusu açar ve işlemi iptal etme olanağı verir.Visual Basic'te, bir sonraki ifade başka bir kapsam veya işleve taşıyamazsınız.

  • Çalışma zamanı denetimi etkin, varsa, yerel C++'da, sonraki deyimi ayarlamak yürütme yönteminin sonuna ulaştığında atılan özel durum neden olabilir.

  • Düzenle ve devam et etkinleştirildiğinde, Sonraki deyimi Ayarla Düzenle ve devam et düzenlemeler yaptıysanız, başarısız olamaz hemen yeniden.Bir catch blok içinde kod düzenlediyseniz, bu, örneğin, oluşabilir.Bu durumda.İşlem desteklenmediğini belirten bir hata iletisi görürsünüz.

Not

Yönetilen kod içinde bir sonraki ifade aşağıdaki koşullarda taşınamıyor:

  • Sonraki deyim geçerli deyimi daha farklı bir yöntem bileşenidir.

  • Hata ayıklama başlatıldı Just-ın-Time kullanarak hata ayıklama.

  • Çağrı yığını bırakma devam ediyor.

  • System.StackOverflowException veya System.Threading.ThreadAbortException bir özel durum oluşturdu.

Uygulamanız etkin olarak çalışırken bir sonraki ifade ayarlanamaz. Sonraki deyimi ayarlamak için Hata Ayıklayıcı kesme modunda olması gerekir.

y740d9d3.collapse_all(tr-tr,VS.110).gifSınırlamak için yalnızca benim kod atlama

Bazı durumlarda, hata ayıklaması yaptığınız sırada yazmıştır ve sistem çağrıları gibi başka bir kod yoksay yalnızca kod bakmak isteyebilirsiniz. Yalnızca benim kod hata ayıklama ile bunu yapabilirsiniz. Böylece hata ayıklama pencerelerinde görünür değil sadece benim kodu olmayan kullanıcı kodu gizler. Adımlayarak, hata ayıklayıcıyı herhangi bir kullanıcı kod adımları ancak içinde durdurmaz.

Etkinleştirmek veya yalnızca benim kod hata ayıklamasını devre dışı bırakmak için seçin hata ayıklama, seçenekleri ve ayarları. Üzerinde hata ayıklama, Genel sayfa işaretleyin veya temizleyin Hemen etkinleştirmek My kod.

Kullanıcı kodu olmayan kullanıcı kodundan ayırmak için simge (pdb) dosyaları ve program en iyi duruma getirme yalnızca My kodunu arar.

Standart bir hata ayıklama yapısını en iyi duruma getirme kapalı ve hata ayıklama simgeleri tüm modülleri için oluşturulur. Hata ayıklama yapı çalıştırdığınızda bu modüllerde kullanıcı kodu olarak kabul edilir. Ancak optimize edilmiştir ve hata ayıklama simgeleri yok bir kitaplık işlev kullanıcı kodu olarak kabul edilmez. Yalnızca benim kod yürütme genellikle kodu hata ayıklamaya ilgilenen değil kitaplık kodu içinde kesme sırasında durdurmasını engeller. Kesme noktası penceresinde, bu kesme noktaları devre dışı kesme noktası simgesi ile görüntülenir.

Tüm kod ve Durdur tüm kırılma noktalarını görmek için kullanarak yalnızca benim kod hata ayıklamasını kapatabilirsiniz seçenekleri iletişim kutusu.

Üç öznitelik de etkiler ne hata ayıklayıcı My kod olarak tanınan: DebuggerNonUserCodeAttribute hata ayıklayıcı uygulanan için kod My kodu değil bildirir. DebuggerHiddenAttributeYalnızca benim kodu kapalı olsa bile hata ayıklayıcının kodu gizler. DebuggerStepThroughAttributehata ayıklayıcı, yerine koduna uygulanır kodu gözden geçirmek için söyler.

Yalnızca benim kod etkin olduğunda, seçebilirsiniz Sonu tüm üzerinde hata ayıklama menü ve Dur yürütme bir konumda burada My görüntülemek için kod. Bunu başardığınızda, hiçbir kod görüntülenir. Ayrıca, isterseniz bir Adım komutunu yeniden yönlendirilirsiniz My kodun sonraki satıra.

Visual Basic gibi programlama sonu ifadelerini Stop , ifadeleri farklı şekilde işlenir. Yalnızca benim kod etkin olsa bile hata ayıklayıcı Bu ifadeler üzerinde her zaman keser. Bu durumda, kullanıcı kod gizli görüntülenen yerine, ancak stepping hala, kullanıcı olmayan kodun dışına çıkarın My kodunun bir sonraki satıra olacak.

Not

Yalnızca benim kod, aygıt projeleri için desteklenmiyor.

y740d9d3.collapse_all(tr-tr,VS.110).gifSistem çağrılarını adımlar

Sistem kodu için hata ayıklama simgelerini yüklemiş olduğunuz ve My kodu yalnızca etkin değilse, başka bir çağrı gibi bir sistem çağrısına geçebilirsiniz.

Yalnızca benim kod devre dışı bırakma hakkında bilgi edinmek için bkz.Restrict stepping to Just My Code

Microsoft symbol dosyalara erişmek için bkz: Windows ve diğer Microsoft simgelerini kullanma , Simge (.pdb), Kaynak ve İkili Dosyaları Bulma konu.

Ayıklarken simgeler için belirli sistem bileşenlerini yüklemek için:

  1. Modül penceresini açın (klavye: Ctrl+Alt+U).

  2. Simgeler için yüklemek istediğiniz modülü seçin.

    Hangi modüller yüklenmiş bakarak sembolünüz söylemek Simge durumuna sütun.

  3. Seçim Yük simgeler bağlam menüsünde.

y740d9d3.collapse_all(tr-tr,VS.110).gifÖzellikler ve yönetilen kod işleçlerin mla

Varsayılan Özellikler ve işleçlerin yönetilen kod üzerinden hata ayıklayıcı adımlar. Çoğu durumda, bu hata ayıklama daha iyi bir deneyim sağlar. Özellikleri veya işleçleri stepping etkinleştirmek için seçin hata ayıklama, seçenekleri ve ayarları. Üzerinde hata ayıklama, Genel sayfasında, Temizle özellikleri ve işleçler (yalnızca yönetilen) üzerinden adım onay kutusu

Bu konuda

Hata ayıklamayı Durdur

Durdurma hata ayıklama hata ayıklama oturumu sonlandırma anlamına gelir. Hata ayıklama ve hata ayıklama oturumu sona erdirme işlemi sonlandırma yürütme durdurma anlamına gelir. Bu, geçici olarak, hata ayıklaması yaptığınız işlemin yürütülmesini durdurur ancak hata ayıklama oturumu etkin bırakır yürütme sonu ile karıştırılmamalıdır. Ayırma işlemine ait hata ayıklama işlemini durdurur ancak çalışmasını bırakır.

Visual Studio hata ayıklama Durdur

Seçim hata ayıklama, hata ayıklamayı Durdur.

Hata ayıklama Durdur debugging program Visual Studio'dan Başlatıldı durumunda işlemi sonlandırır. Yerine Visual Studio'dan başlatma işlemine bağlı işlemi çalışmaya devam eder.

Hata ayıklamayı durdurun ve yeniden başlatın

Seçim hata ayıklama, yeniden geçerli hata ayıklama oturumunu durdurmak ve hata ayıklayıcı'startup Project'i yeniden başlatın.

Ayıklanacak app kapatın

Ayıklanacak bir app çıktığınızda, hata ayıklama otomatik olarak durdurur.