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.
C++ projeleri için Düzenle ve Devam Et, çoğu kod değişikliği türünü işler. Ancak, program yürütme sırasında bazı değişiklikler uygulanamaz. Bu değişiklikleri uygulamak için yürütmeyi durdurmanız ve kodun yeni bir sürümünü oluşturmanız gerekir.
Visual Studio'da C++ için Düzenle ve Devam Et ile çalışma hakkında bilgi için Düzenle ve Devam Et (C++)'ye bakın.
Gereksinimler
Yapı ayarları (Proje > Özellikleri)
C/C++ > Genel > Hata Ayıklama Bilgi Biçimi: Düzenleme ve Devam Için Program Veritabanı (
/ZI)Bağlayıcı > Genel > Artımlı Bağlamayı Etkinleştir: Evet (
/INCREMENTAL)Uyumsuz bağlayıcı ayarları (örneğin
/SAFESEH,/OPT:...) derleme sırasında LNK4075 uyarısına neden olabilir. Örnek:LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:ICF' specification
Hata ayıklayıcısı ayarları (Hata Ayıklama > Seçenekleri)
Hata Ayıklama (veya Araçlar) >Seçenekleri bölmesini açın ve Tüm Ayarlar>Hata Ayıklama>.NET/C++ Anında Yeniden Yükleme bölümünü genişletin.
Hata Ayıklama (veya Araçlar) >Seçenekler iletişim kutusunu açın ve Hata Ayıklama>.NET/C++ Hot Reload bölümünü genişletin.
Özelliği etkinleştirmek için aşağıdaki seçeneklerden birini veya tümünü seçin:
Hot Reload'u Etkinleştir: Hata ayıklayıcıyla başlatıldığında Hot Reload'u etkinleştirir (F5).
Hata ayıklama olmadan başlatılırken Sıcak Yeniden Yüklemeyi etkinleştir: Hata ayıklama olmadan başlatıldığında Sıcak Yeniden Yüklemeyi etkinleştirir (Ctrl + ).
Dosya Kaydetme sırasında Sık Erişimli Yeniden Yüklemeyi Etkinleştir: Dosya kaydedildiğinde Sık Erişimli Yeniden Yüklemeyi etkinleştirir.
Günlük ayrıntı düzeyi: Anında Yeniden Yükleme etkinleştirildiğinde, günlük ayrıntı düzeyini ayarlayın. En Az (varsayılan), Ayrıntılı veya Tanılama seçeneklerinden birini belirleyin.
Bu ayarları değiştirmek üzerinde çalıştığınız tüm projeleri etkiler. Bir ayarı değiştirdikten sonra uygulamanızı yeniden oluşturmanız gerekmez. Uygulamanızı komut satırından veya bir makefile dosyasından derlerseniz ancak Visual Studio ortamında hata ayıklarsanız, /ZI seçeneğini ayarlarsanız "Düzenleme ve Devam Et" özelliğini kullanmaya devam edebilirsiniz.
Desteklenmeyen değişiklikler
Aşağıdaki C/C++ değişiklikleri hata ayıklama oturumu sırasında uygulanamaz. Bu değişikliklerden herhangi birini yapıp kod değişikliklerini uygulamayı denerseniz , Çıkış penceresinde bir hata veya uyarı iletisi görüntülenir.
Genel veya statik verilerde yapılan çoğu değişiklik.
Başka bir makineden kopyalanan ve yerel olarak oluşturulmayan yürütülebilir dosyalarda yapılan değişiklikler.
Bir sınıfın veri üyeleri gibi bir nesnenin düzenini etkileyen veri türünde yapılan değişiklikler.
64k bayttan fazla yeni kod veya veri ekleme.
Yönerge işaretçisinin önüne bir noktada oluşturucu gerektiren değişkenler ekleme.
Çalışma zamanı başlatma gerektiren kodu etkileyen değişiklikler.
Bazı durumlarda özel durum işleyicileri ekleme.
Kaynak dosyalarındaki değişiklikler.
Salt okunur dosyalarda kodda yapılan değişiklikler.
İlgili PDB dosyası olmadan kodda yapılan değişiklikler.
Nesne dosyası olmayan kodda yapılan değişiklikler.
Aşağıdaki senaryolarda lambdaları değiştirme:
- Lambda'ların statik veya global bir üyesi olduğunda.
- Bir
std::functionişlevine lambda geçtiğinizde. Bu yöntem orijinal bir ODR ihlaline neden olur ve C1092 ile sonuçlanmaktadır.
Düzenle ve Devam Et statik kitaplıkları güncelleştirmez. Statik kitaplıkta değişiklik yaparsanız yürütme eski sürümle devam eder ve hiçbir uyarı yapılmaz.
Desteklenmeyen senaryolar
C/C++ için Düzenle ve Devam Et, aşağıdaki hata ayıklama senaryolarında kullanılamaz:
/Zo ile derlenen yerel uygulamalarda hata ayıklama (İyileştirilmiş Hata Ayıklamayı İyileştir)
MSVC v120 araç takımını ve C/C++
/bigobjanahtarını kullanan projeler. Düzenle ve Devam Et/bigobjyalnızca MSVC v140 ve üzeri derleme araçlarında desteklenir.Karma mod (yerel/yönetilen) hata ayıklama.
JavaScript hata ayıklama.
SQL hata ayıklama.
Döküm dosyasında hata ayıklama.
İşlenmeyen bir özel durum sonrası, işlenmeyen özel durumlarda çağrı yığını çöz seçeneği seçilmediğinde kod üzerinde düzenleme yapılıyor.
Hata Ayıkla menüsünde Başlat'ı seçerek uygulamayı çalıştırmak yerine Ekle'yi kullanarak uygulamada hata ayıklama.
İyileştirilmiş kodda hata ayıklama.
Derleme hataları nedeniyle yeni bir sürüm oluşturulamadıktan sonra kodunuzun eski bir sürümünde hata ayıklama.
Özel derleyici (cl.exe) yolu kullanma. Güvenlik nedenleriyle, Düzenle ve Devam Et sırasında bir dosyanın yeniden derlenişi için Visual Studio her zaman yüklü derleyiciyi kullanır. Özel bir derleyici yolu kullanıyorsanız (örneğin, dosyanızdaki
$(ExecutablePath)özel*.propsbir değişken aracılığıyla), bir uyarı görüntülenir ve Visual Studio aynı sürümün/mimarinin yüklü derleyicisini kullanmaya geri döner.Eski Mimariler/MSVC araç kümeleri. MSVC v140 araç takımıyla, varsayılan hata ayıklayıcı hem X86 hem de X64 uygulamalarıyla Düzenle ve Devam Et'i destekler. Eski araç kümeleri yalnızca X86 uygulamalarını destekler. MSVC v120'den eski araç kümeleri, Düzenle ve Devam Et'i kullanmak için "Hata Ayıklama > Seçenekleri > Genel > Yerel Uyumluluk Modunu Kullan" seçeneğini işaretleyerek eski hata ayıklayıcıyı kullanmalıdır.
IDL öznitelik sınırlamaları
Düzenle ve Devam Et, arabirim tanım dili (IDL) dosyalarını yeniden oluşturmaz. Bu nedenle, hata ayıklarken IDL özniteliklerindeki değişiklikler yansıtılmaz. IDL özniteliklerinde yapılan değişikliklerin sonucunu görmek için hata ayıklamayı durdurmanız ve uygulamanızı yeniden oluşturmanız gerekir. Düzenle ve Devam Et, IDL öznitelikleri değiştiyse hata veya uyarı oluşturmaz. Daha fazla bilgi için bkz. IDL Öznitelikleri.
Sorunları tanılama
Senaryonuz yukarıda belirtilen koşullardan herhangi birine uymuyorsa, aşağıdaki DWORD kayıt defteri değerini ayarlayarak daha fazla ayrıntı toplayabilirsiniz:
Bir Geliştirici Komut İstemi açın.
Aşağıdaki komutu çalıştırın:
VsRegEdit.exe set “C:\Program Files\Microsoft Visual Studio\[Version]\[YOUR EDITION]” HKCU Debugger NativeEncDiagnosticLoggingLevel DWORD 1
Hata ayıklama oturumunun başlangıcında bu değerin ayarlanması, Düzenle ve Devam Et'in çeşitli bileşenlerinin Çıkış Penceresi>Hata Ayıklama bölmesine ayrıntılı günlük kaydı eklemesine neden olur.