Kesme Noktası Bağlanamadı - Visual Studio 2015


158

Visual Studio 2013'ten 2015'e yeni sürüme geçtim ve şimdi kesme noktalarıyla ilgili sorun yaşıyorum.

Kırılma noktalarının gerçekten işe yarayacağı bir vuruş ya da özledim ve hata ayıklama sırasında birini ayarlarsam hatayı alıyorum:

Kesme noktası bağlanamadı.

Herhangi bir yardım mutluluk duyacağız. 2015'te vazgeçmeye ve geri dönmeye hazırım.

Yanıtlar:


226

Aynı problemim vardı ama farklı bir çözüm. Lütfen VS 2015 Güncelleme 1'e güncellediğimi ve sorunun hala orada olduğunu unutmayın.

VS başlangıç ​​hata ayıklama önceki sürümünde otomatik olarak hata ayıklama modunda bir yapı tetikledi. Ama VS2015 ile öyle değil.

Bu nedenle, son derlemeniz yayınlama modundaysa ve hata ayıklamayı denerseniz kesme noktası çalışmaz.

Önce hata ayıklama modunda el ile oluşturmanız ve ardından hata ayıklamaya başlamanız gerekir.


3
Bu garip bir davranış değil mi? Bir böcek olarak kabul edilebilir mi?
Tolga Evcimen

Microsoft Visual Studio 2015 Güncelleştirme 3 Güncelleştirmesi (KB3165756) yüklendiğinde, daha önce "Kesme noktası bağlanamadı" iletisi alıyorum. C # Görüntülemede hata
hem

2
Bu gerçekten iyiydi :) Ben serbest bırakma yapı etkin unuttum ve bu okumaya kadar çok garip hata ayıklama oturumu yaşıyordu Ben hata ayıklama geri etkinleştirmeyi hatırlıyorum ve her şey "normal".
tekrarlayın

1
Tuhaf bir deneyim yaşadım. Yapıyı "Release", build, sonra "Debug" olarak ayarlayıp tekrar oluşturmak zorunda kaldım.
samneric

@TolgaEvcimen VS 15.5.6'dan itibaren 2 yıldan fazla bir süre sonra, davranışın hala aynı olduğu göz önüne alındığında, MS'in bir hata olduğunu düşünmediğini söyleyebilirim. Şahsen ben otomatik olarak bir hata ayıklama inşa tetik eski davranışına dönmek daha mantıklı bulur. Ya da en azından bir uyarı verin.
Max Favilli

82

Ben de aynı problemi yaşadım.

Proje özellikleri Derleme sekmesinde "Kodu optimize et" seçeneğini devre dışı bırakarak çözdüm.


Sorun hala projelerimden birine geri döndü. Her neyse, Güncelleme 1 şimdi çok
umuyoruz

2
Hata ayıklama derlemesinin bütün amacı bu değil mi? Ben "Kod optimize" kapalı bir Sürüm derleme karşı tavsiye ederim.
Bart Friederichs

Config Manager'a baktığımda, çözüm için Debug'a geçtim ve bazı projelerin yanlış Release olarak ayarlandığını gördüm. Bu, açılır menüden Hata Ayıkla'nın seçilmesinin, bu projelerin Yayın yapılandırmalarını kullanmasına neden olacağı anlamına gelir, yani optimize edilmiştir.
AaronLS

39

Bu önemsiz görünebilir, ancak bahsettiğinizle aynı sorunlara sahip bir sürü kafadan sonra, hata ayıklamayı denediğimde yapımın "hata ayıklama" yerine "serbest bırakma" olarak ayarlandığını öğrendim. "düzeltti ve kesme noktalarını normal olarak ayarlayabilirim


2
Bu kırılma noktalarını belirlememe izin verdi ama sonsuza dek sürmedi. Ayrıca hala hala rastgele kod satırları atlama hata ayıklama ile ilgili sorunlar var
Sealer_05

Bu sorun, çılgınca farklı çözümler için tek seferlik geçici başarı raporlarına rağmen devam ediyor. Ancak, bu belirli "düzeltme" yan tarafında koymak gerekir "bilgisayarınızın takılı olduğunu". Gerçekten bir çözüm değil. Evet güce ihtiyacınız var ve evet bir sürüm derlemesinde kesme noktaları ayarlayamazsınız.
Rick O'Shea

@Kenneth Møller Bahsettiğiniz gibi, önemsiz görünebilir, ancak sorunumu da çözdü.
Ben Junior

36

Yerleşimler penceresinde değerlendirmeyen bazı yerel değişkenlerin yanı sıra kesme noktaları bağlama başarısız benzer bir sorun vardı. Sonunda ne düzeltildi Seçenekler-> Hata Ayıkla-> Genel sekmesinde "Modül yükü JIT optimizasyonunu bastır (sadece Yönetilen)" seçeneği etkinleştirildi. Bir keresinde sorun olmadan bağlanabildiğini ayarladım.


Ben bir şans verdi ama hala benim api denetleyicileri kesme noktaları isabet değildi.
Sealer_05

Burada optimize edilmiş kodla hata ayıklama konusunda iyi bir açıklama var
Nathan

Hımm, hayır, bu bir çözüm değil. Elde ettiğimiz şey, konuyla hiçbir ilgisi olmayan, rastgele kendi başına kaybolan anahtarlama değiştiren insanlar
Rick O'Shea

En sonunda. Bu da daha önce atlanmış olan kodun üzerinden geçmemi sağladı.
Jeff Davis

Bu VS 2019'da benim için çözdü, çok teşekkür ederim!
EM0

14

Bu sorunu yaşadım. Web.configPerformans İzleyicisi ayarlarıyla dosyayı değiştiren bir performans profili oturumu çalıştırdım :

<appSettings>
   <add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools\vsinstr.exe"/>
</appSettings>


<compilation debug="true" targetFramework="4.5" 
      assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
   ...
</compilation>


<runtime>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
         <assemblyIdentity name="Microsoft.VisualStudio.Enterprise.AspNetHelper" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
         <codeBase version="16.0.0.0" href="file:///D:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/Microsoft.VisualStudio.Enterprise.AspNetHelper.DLL"/>
      </dependentAssembly>
      <dependentAssembly>
         <assemblyIdentity name="VsWebSite.Interop" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
         <codeBase version="8.0.0.0" href="file:///D:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/VsWebSite.Interop.DLL"/>
      </dependentAssembly>
   </assemblyBinding>
</runtime>

Bu, kesme noktalarında durma yeteneğimi kırdı. Özgün Web.config dosyasına geri döndüğümde (Performance Profiler ayarlarını kaldırdım), kesme noktaları yeniden çalışmaya başladı.


1
VS 2017'de profil oluşturduktan sonra bu benim için bir çözümdü. Çok teşekkürler.
Lee Taylor

1
Kesme noktalarının bağlanamamasının birçok nedeni var gibi görünüyor, ama gördüğümüz bu.
BJury

2
Bu benim içindi. Bu AppSetting kaldırdım:<add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Team Tools\Performance Tools\vsinstr.exe"/>
Chad Hedgcock

5

Dün aynı sorunu yaşadım. "Çözümü Temizle" özelliğini kullandım ve yardımcı oldu.


3
Neredeyse komedi merkezi gibi. "Makinenin üzerine lastik bir tavuk salladım ve işe yaradı" diye bekliyorum. Bu sorunu deneyimleyen yarım düzine geliştiricimiz var ve bu ad hoc sihirli, açıklamasız çözüm çalışmalarından biri değil.
Rick O'Shea

5

çözüm, tasarım optimizasyonunu devre dışı bırakmaktır.

Project Properties> Build> Advanced Compile Options> Enable Optimizations


4

Çözümümde performans çalıştırıyorum ve bunu web.config dosyasına ekledim

<compilation debug="true" targetFramework="4.5" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 

assemblyPostProcessorTypesorundur, sildim onu ve benim sorun çözüldü



1

'Optimize' ayarını değiştirmedim, ancak buradaki diğer cevaplara dayanarak,

  1. Solution Explorer'ı proje için tüm dosyaları gösterecek şekilde ayarlama
  2. Gizli çöp kutusu ve hata ayıklama klasörleri silindi
  3. Projede 'Temiz' gerçekleştirdi
  4. Projede 'Yeniden Oluştur' gerçekleştirildi

Şimdiye kadar bu benim için düzeltti. VS2015 Güncelleme 2'ye güncelleme sistemimde birkaç şeyle uğraşmış gibi görünüyor.


1

Bu eski bir yazı olduğunu biliyorum, ancak yukarıdaki tüm hileler sizin için işe yaramazsa, hata ayıklamaya çalıştığınız görüntünün güncel olduğundan emin olun. Bazı nedenlerden ötürü bir .NET Core projesini Raspberry Pi'ye aktardıktan sonra RPi'deki 'unzip' çalışma dizinindeki bazı DLL'leri kopyalayıp üzerine yazmıyordu. Hata ayıklayıcıyı her şeyin yolunda olduğunu düşündüğümde bazı kesme noktaları vurulan, diğerleri değildi ve diğerleri bana "bağlanamıyor" hatası veriyorlardı. Sıkıştırma sorununu çözdüğümde tüm kesme noktalarım ve sembollerim geri geldi. Umarım bu yardımcı olur.


0

Bugün bağlayıcı kesme hatalarıyla karşılaştım. Ve problemlerimi çözerek aşağıda çözdüm.

Tüm hata ayıklama yapılandırmalarınız doğru değilse, aşağıdaki işlemleri yaparak sorunu çözemezsiniz.

  1. Temiz Proje
  2. Çıktı yolu bin klasöründen farklıysa, bin klasörüne değiştirin (bu en önemli kuraldır)
  3. yeniden inşa etmek

Belki bu çözüm birine yardım eder.


0

VS kesme noktaları zaman uyumsuz yöntemlere bağlanamaz.

Buna neden olan bir App Dynamics aracısı yükledim. Bunu kaldırın ve gitmeye hazırsınız.


0

Aynı sorunu vardı, ama hadnt "Hata ayıklama" hata ayıklama araç çubuğunda (genellikle doğrudan menünün altında) "Release" olarak değişti fark. Ben de "Debug" olarak ayarladım.



0

ADIM 1, Açık olanı dışlayın:

  • Hata Ayıklama modunda derleyin.
  • Kesme noktasını ayarlamadan önce Çözümü Temizlemeye çalışın.
  • Hata ayıklama klasörüne gidin ve [Uygulamanız] .pdb dosyasını silin.
  • Ardından uygulamanızı derleyin veya yeniden oluşturun.
  • Hata ayıklama klasörüne gidin ve yepyeni bir [Uygulamanız] .pdb dosyanız olduğunu onaylayın.
  • Ardından kırılma noktanızı ayarlamaya çalışın.

ADIM 2 C ++ projeleri için:

Aşağıdaki proje özelliklerini kontrol edin:

  • C ++ / Genel / Hata Ayıklama Bilgi Biçimi: Program Veritabanı.
  • C ++ / Optimizasyon: Devre dışı.
  • C ++ / Kod oluşturma / Çalışma zamanı kitaplığı: Çok iş parçacıklı hata ayıklama.
  • Bağlayıcı / Hata Ayıklama / Hata Ayıklama Bilgisi Oluştur: Evet.
  • Bağlayıcı / Hata Ayıklama / Program veritabanı oluştur: $ (TargetDir) $ (TargetName) .pdb.
  • Bağlayıcı / Bildirim Dosyası / Bildirim Oluştur: Hayır.
  • Bağlayıcı / Bildirim Dosyası / İzolasyona İzin Ver: Hayır.
  • Bağlayıcı / Katıştırılmış IDL / Katıştırılmış IDL'yi yoksay: Evet.
  • Adım 1'i Tekrar Yapın

    __Debugbreak () eklemeyi deneyebilirsiniz. Bu ifadenin, kırmak istediğiniz kaynak dosyanıza girmesi gerekir.

ADIM 2 C # projeleri için:

  • Proje özelliklerinde Yapı / Genel / Optimize kodu devre dışı bırakılmalıdır.
  • IDE ayarlarında Hata Ayıklama / Seçenekler ve Ayarlar / Hata Ayıklama / Genel Modül yükünde JIT optimizasyonunu bastırma (yalnızca Yönetilen): Etkin
  • Adım 1'i Tekrar Yapın

Çözümünüzü başka bir makinede açmayı deneyin. Farklı bir makinede bir kesme noktası bağlayabiliyorsanız, bu, VS'nizle veya işletim sisteminizle ilgili bir sorun olduğu anlamına gelebilir.

ADIM 3, VS'nizin güncel olduğundan emin olun:

VS2013 RTM'de bunun yanı sıra VS2015 Güncelleme 1 ve Güncelleme2'de böyle sorunların bildirildiği bildirilmiştir.

VS'de Araçlar / Uzantılar ve Güncellemeler / Güncellemeler / Ürün Güncellemeleri bölümüne gidin ve hangi sürümü çalıştırdığınızı görün. Bir güncelleme gerekiyorsa orada görünecektir.

4. ADIM, İşletim Sisteminizin güncel olduğundan emin olun:

Son olarak, bir Win 10 işletim sistemi çalıştırıyorsanız, bu sorunla ilgili olarak 14251 yapısında var olan bildirilen bir hata oluştu.


0

Ben de benzer bir problemle karşılaştım ve buradaki cevapların hiçbiri karşılaştığım soruna çarpmadı. Ancak sorunun aksine, bağlanmada başarısızlık olduğunu söyleyen bir mesaj almadım. Kesme noktası asla çarpmaz. Umarım bu gelecekte WCF ile duvara kafa vurarak birisi için yararlıdır.

TL / DR:
SOAP mesajında ​​kesme noktasının isabet almamasına neden olan kötü veriler içeren bir kayıt vardı.

Tüm hikaye:

Başka bir ekibin WSDL tabanlı bir WCF hizmetim var. Tanýmým deđil, üzerinde kontrol yok ... Bu servisle bu ekipten mesajlar alýyorum. Benim durumumda, iletileri alırım, veritabanındaki ileti günlüğü tablosuna (hizmet yöntemimin çağrılmasından önce gerçekleşir) iletiyi kaydedebilirim, hizmet yöntemi görünüşte çağrılır (belki de değildir) ve sunucu yanıt verir a 202 Kabul edildi. Yöntem çağrısı sırasında veritabanına hiçbir veri kaydedilmemesi dışında iletişim çalışıyor.

Hizmet bir başarı yanıtı döndürdüğü için http ve ulaşımla ilgili sorunları dışladım.

Bu yüzden hizmet hata ayıklamak için VS2015 ateş etti. Söz konusu mesaj büyük ama beklediğim sınırlar içinde. Hizmet yönteminin ilk satırına bir kesme noktası koydum ve büyük iletiyi gönderdim, ancak kesme noktası hiçbir zaman çarpmadı. Aynı çalışma örneğinde çalıştığını bildiğim daha küçük bir mesaj denedim ve kesme noktasına iyice çarptı. Yani yapılandırmadaki her şey iyi görünüyordu. Belki mesaj boyutunda bir şey olduğunu düşündüm.

Bulabildiğim her şeyi denedim - bir hata ayıklama yapılandırmasında bulunduğumdan, temizleyip yeniden oluşturduğumdan emin olarak, hata ayıklayıcıyı w3wp işlemine manuel olarak ekleyerek (VS zaten vardı), Debugger.Break()bir kesme noktası yerine kullanarak , birden fazla başlangıç ​​projesi ayarlayarak, test projemi yükleyerek hizmet projesi .NET'i güncelleştirmek, VS2015'i yeniden başlatmak, yeniden başlatmak, Yerel IIS'den IIS Express'e geçmek ve geri dönmek, hizmeti en son garantili WSDL ile yeniden oluşturmak için tek proje oldu. Hiçbir şey önemli değildi. Kırılma noktasına hiç çarpılmadı.

Kötü veriye sahip tek bir kayıt bulana kadar büyük mesajdaki kayıtları tek tek kaldırmak zorunda kaldım. Benim durumumda, 2 DateTime alanı için değeri olmayan bir kayıttı. İçinde sadece bu kaydı olan bir mesaj oluşturup gönderdiğimde, kırılma noktası isabet etmedi. Ben bu 2 DateTime alanları için değerler sağladı ve aynı (sabit) iletiyi beklendiği gibi tetiklendi.

Etkinleştirilmiş her CLR istisnası vardı, umurumda değildi .pbd dosyaları eksik dışında hiçbir şey ateş. WCF, isteği kötü bir kayıtla mutlu bir şekilde gönderdi. WCF'nin sözleşmelere dayanarak göndermemesi gerektiğini söylemiyorum, sadece kötü kayıt kesme noktasının vurulmamasına neden oldu.


0

Hata ayıklamayı etkinleştirmek için web.config dosyasını değiştirmek zorunda kaldım. Bunu değiştir:

<compilation debug="true" targetFramework="4.5.2" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

için:

<compilation debug="true"/>

0

Temizleyin diğer çözümlerin herhangi denemeden önce tüm çözüm. Önceki cevaplarda hemen hemen her şeyi denedikten ve görsel stüdyosu birkaç kez yeniden başlattıktan sonra, sadece çözümü temizlemek hile yaptı!


0

Burada önerilen her şeyi denedim. Sonunda, Proje Özellikleri -> Web'deki "Belirli Sayfa" yı yerel başlangıç ​​URL'me, sayfama ve sorgu parametresime ayarladım. Temiz ve hata ayıklama modunda yeniden inşa ve benim kırılma noktası vurdu.


0

Bu çok daha sonra inşa (VS2017) olsa da ben C # projeleri ile bu sorunu vardı. Temizlenmiş, yeniden inşa edilmiş, görsel stüdyoyu yeniden başlatan vb.

Ne düzeltildi Visual Studio kapatılıyor ve çözüm dizinde bulunan gizli bir klasör olan .vs klasörü siliniyordu. Başlangıç ​​projenizi sıfırlamanız gerekse de, .vs klasörünü silmek size herhangi bir soruna neden olmamalıdır.


0

Benim durumumda, kullandıktan sonra yeni bir web.config dosyası oluşturuldu Profiler. Web.config dosyasını önceki sürüme geri yüklemek bu sorunu çözdü. Bir VS2015 C # web uygulamasıydı.


0

Web uygulaması denetiminizi Configurationayarlanmış olarak yayınlıyorsanız Debug(varsayılan olarak hata ayıklama yapılandırmasında kod optimize edilmeyecek ve sembol tablosu tamamen oluşturulacak şekilde ayarlanır).resim açıklamasını buraya girin


-1

Önceki cevapları baktı ve @ Will cevap ben yaşadım , diğer düzenleme ve devam edebiliyordu ana sorunu düzeltildi ama AssemblyInfo.cs dosyasına daha yakından bakmak devre dışı bırakıldığında bazı hata ayıklama özellikleri öğrendim.

Sonra eski hata ayıklama niteliklerini kaldırma ve başka bir projeden aldı aşağıdaki ekleyerek sona erdi

#if DEBUG
[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations | System.Diagnostics.DebuggableAttribute.DebuggingModes.EnableEditAndContinue | System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | System.Diagnostics.DebuggableAttribute.DebuggingModes.Default)]
#endif

Yine de bunu yapmanın en iyi yolu olmadığını hissediyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.