Aplikacja komputerowa C # w wersji ekspresowej działała, a następnie nie działała 5 sekund później.
Próbowałem następujące:
- Upewnij się, że konfiguracja debugowania, flaga debugowania i pełne informacje debugowania są ustawione dla wszystkich zestawów.
- Usuń wszystkie foldery bin i obj oraz wszystkie biblioteki DLL związane z projektem z całego mojego komputera.
- Odtwórz projekty powodujące problem od zera.
- Restart.
W rozwiązaniu mam dwa projekty WinForm. Jeden z nich ładuje informacje debugowania, drugi nie. Oba odnoszą się do zestawu, w którym próbuję uzyskać informacje debugowania w dokładnie taki sam sposób w pliku projektu. Jakieś pomysły?
Chcę dodać tutaj, głównie dla siebie, gdy wrócę, aby przejrzeć to pytanie, że symbole nie są ładowane, dopóki zestaw nie zostanie załadowany, a zestaw nie zostanie załadowany, dopóki nie będzie potrzebny. Jeśli punkt przerwania znajduje się w bibliotece, która jest używana tylko w jednej funkcji w głównym zestawie, symbole nie zostaną załadowane (i pokaże punkt przerwania jako nie trafiony), dopóki ta funkcja nie zostanie wywołana.
źródło
<DebugSymbols>true</DebugSymbols>
go pod VS2015, dodałem go ręcznie i działało dobrze.Odpowiedzi:
Rozpocznij debugowanie, gdy tylko dojdziesz do punktu przerwania lub
Debug > Break All
użyjesz, użyjDebug > Windows > Modules
. Zobaczysz listę wszystkich zestawów załadowanych do procesu. Znajdź ten, dla którego chcesz uzyskać informacje debugowania. Kliknij go prawym przyciskiem myszy i wybierz Informacje o ładowaniu symbolu. Pojawi się okno dialogowe z listą wszystkich katalogów, w których szukał pliku .pdb dla zestawu. Sprawdź tę listę w stosunku do rzeczywistej lokalizacji .pdb. Upewnij się, że nie znajdzie starego.W normalnych projektach zestaw i jego plik .pdb powinny zawsze być kopiowane przez IDE do tego samego folderu, co plik .exe. Folder bin \ Debug twojego projektu. Pamiętaj, aby usunąć jeden z GAC, jeśli grałeś nim.
źródło
Najpierw spróbuj odbudować swój projekt klikając prawym przyciskiem myszy projekt> Przebuduj Jeśli to nie działa, spróbuj wyczyścić projekt (kliknij prawym przyciskiem myszy na projekt> wyczyść)
Jeśli to nie zadziała, sprawdź to:
(krok 6 generuje pliki .pdb, są to symbole debugowania)
źródło
Properties > Build > Optimize code
to nie jest zaznaczone .Po prostu coś prostego do wypróbowania - być może już tego próbowałeś. Kliknij prawym przyciskiem myszy Solution in explorer rozwiązania, kliknij „czyste rozwiązanie”, to usunie wszystkie skompilowane i tymczasowe pliki związane z rozwiązaniem .
Przebuduj rozwiązanie i spróbuj ponownie debugować.
Miałem również problemy z wieloma punktami przerwania w jednym rozwiązaniu - niektóre skompilowane jako x86, niektóre jako x64.
źródło
Wyłącz opcję „Just My Code” w ustawieniach debugowania / ogólnych.
źródło
Cross zamieszczając poprawkę od Hansa K , którą znalazłem w podobnym wątku >> TUTAJ << :
źródło
Wybrana odpowiedź doprowadziła mnie do rozwiązania problemu. Ale muszę zrobić jeszcze kilka rzeczy:
Nawet z wybraną opcją „Debuguj”:
I w projekcie Właściwości> Kompilacja:
Program Visual Studio nie ładował symboli do określonego projektu. W tym menu wybrałem „Menedżer konfiguracji” i zobaczyłem, że ustawienia mojego projektu internetowego były nieprawidłowe:
Potem ustawiłem to na „Debuguj” i zaczęło generować
.pdb
plik. ALE muszę ręcznie skopiować PDB i DLL i umieścić w folderze, którego szukał VS (tutaj pomogła mi wybrana odpowiedź):źródło
release
trybie. Dzięki !!Debug
>Windows
>Modules
, Aby zobaczyć, co moduły były ładowane umieścić mnie we właściwym kierunku.W moim przypadku IIS Express wydawał się ładować inną bibliotekę DLL niż tymczasowe pliki ASP.NET.
Rozwiązanie?
C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
źródło
Byłem w stanie naprawić błąd, po prostu ustawiając opcję w opcji „Dołącz do procesu” na opcję „Automatycznie określ typ kodu do debugowania”, jak pokazano na załączonym zrzucie ekranu.
Po prostu wykonaj poniższe czynności:
źródło
Czasami, mimo że daje ci ten błąd,
breakpoint
nadal zostaje trafiony, więc po prostu zignoruj błąd. Dzieje się to dość często wViews
O mocyMVC web app
.źródło
Sprawdź, czy brakuje pliku .pbd w folderze bin / Debug. Jeśli tak, przejdź do „Właściwości” swojego projektu, wybierz „Kompiluj”, a następnie „Zaawansowane” u dołu. Wybierz „pełny” w „Informacje debugowania” w nowym oknie, które się pojawiło. To był mój problem i rozwiązałem go dla mnie.
źródło
W moim przypadku „Optymalizacja kodu” została sprawdzona we właściwościach mojego projektu. To spowodowało, że VS zobaczył mój zestaw jako „nie mój kod”, a to z kolei nie załadowało dla niego symboli.
Rozwiązaniem było odznaczenie tego.
źródło
Wystarczy sprawdzić, czy Twoje rozwiązanie jest w trybie zwolnienia.
źródło
Spróbuj uruchomić Visual Studio jako administrator w systemie Windows.
źródło
W moim przypadku próbuję debugować w trybie udostępniania. Raz zmienię go w tryb debugowania. To działa
źródło
Musisz włączyć opcję „Generuj informacje debugowania” w ustawieniach kompilatora
źródło
->
Opcje debugowania->
Ogólne->
Odznacz znak „Enable Just My Code
”To zadziałało dla mnie.
źródło
Znaleźliśmy przyczynę naszego problemu. Ten kod używał atrybutu „CodeBehind” w dyrektywie strony pliku .aspx zamiast atrybutu „CodeFile” (ASP.NET 2.0 i nowsze). Po dniach desperacji proste wyszukiwanie i zamiana rozwiązały problem.
źródło
Opcja „Rozpocznij debugowanie, debugowanie + moduły Windows +” nie istnieje w Microsoft Visual Studio Express 2013 edycja.
Odznaczenie „Użyj zarządzanego trybu zgodności” w opcjach narzędzi. Debugowanie to rozwiązuje.
źródło
Sprawdź
Solution Configuration
listę rozwijaną. Upewnij się, że wybieraszDebug
, a nieRelease
.źródło
Próbowałem wszystkiego wymienionego powyżej, ale nic nie działało. [Wyczyść rozwiązanie i sprawdź pliki PDB itp.]
Nawet opublikowanie tego samego rozwiązania nie rozwiązało problemu.
Potem wróciłem do tego, co zwykle robię, aby rozwiązać (oszukać tego upartego programu Visual Studio)
Wszystko, co zrobiłem, to umyślna zmiana kodu i opublikowanie rozwiązania. Potem cofnąłem zmianę i opublikowałem ponownie.
Voila [pliki PDB pozbywają się złych duchów] .. Nie jest to sprytna rozdzielczość, ale to zadziałało ..: - |
źródło
Tylko aplikacje internetowe (IIS Express):
źródło
Żadna z tych odpowiedzi nie rozwiązała mojego problemu. Próbowałem innej rzeczy opartej na fakcie, że projekt z zatrzymaniem w rzeczywistości nie był załadowanym projektem. Znalazłem, gdy Hans Passant napisał, że plik .dll, w którym chcę zatrzymać debugger, oraz powiązane pliki .pdb zostały skopiowane w pobliżu pliku .exe. Te pliki miały starszą datę, więc pomyślałem, że nie zostały zaktualizowane w czasie wykonywania. Ręcznie je usunąłem, Visual Studio utworzy kolejną parę ORAZ umieściłem tę nową parę w pobliżu .exe. Teraz breakpoins działa!
Być może program Visual Studio nie może skopiować i zastąpić istniejących plików (.dll i .pdb) w pobliżu pliku .exe, ponieważ istnieją inne. Więc jeśli usunę ręcznie, VS może utworzyć nowy w pobliżu .exe.
Myślę, że kolejne zmiany (kontrole i tak dalej - z innych odpowiedzi) spowodowały coś, a Visual Studio skopiowało i zastąpiło dll i pdb z folderu projektu do folderu w pobliżu exe, więc było to rozwiązanie.
Myślę, że główną przyczyną problemu jest to, że Visual Studio używa innego pliku w środowisku wykonawczym, bez pliku z projektu, z zatrzymaniem.
Może ta odpowiedź pomoże komuś!
źródło
Należy to sprawdzić, aby było jasne: upewnij się, że konfiguracja jest ustawiona na „Debuguj”, a nie „Zwolnij”. Możesz debugować projekt startowy w trybie „Release”, ale nie odwołuje się do biblioteki klas, do której się odwołuje.
źródło
Właściwości projektu (następnie wybierz konfigurację kompilacji)> Karta kompilacji> Zaawansowane ...> Informacje debugowania (menu rozwijane)
Ustaw na „wszystkie” lub „tylko pdb”, a następnie przebuduj
źródło
Zamiast robić te wszystkie rzeczy po prostu
Zamknij i otwórz ponownie
rozwiązanie to naprawi problem
źródło
Miałem podobny problem i wykonałem następujące czynności: Debugowanie => Opcje => Ogólne => Usuń zaznaczenie opcji „Włącz tylko mój kod” To działało dla mnie ..
źródło
Zajęło mi to chwilę wypróbowanie innych opcji powyżej iz jakiegoś dziwnego powodu debugowanie przestało działać.
źródło
źródło
Sprawdź, czy następujące dwa ustawienia są takie same w Visual Studio:
Kliknij prawym przyciskiem myszy projekt testowy, przejdź do Właściwości, zakładki Kompilacja i spójrz na Cel platformy
Moje są ustawione na „Any CPU”, więc x64
Na pasku menu głównego przejdź do Test, Ustawienia testu, Domyślna architektura procesora
Mój został ustawiony na X86
Zmiana tego ustawienia na X64 w celu dopasowania do powyższego ustawienia spowodowała, że wbudowane menu programu Visual Studio „Debuguj test (y)” zadziałało i uderzyło w punkty przerwania, które były wcześniej ignorowane komunikatem „Punkt przerwania nie zostanie obecnie trafiony. Dla tego dokumentu nie załadowano żadnych symboli ”.
Aktualizacja:
W przypadku Visual Studio 2019 menu zostały nieco zmienione:
źródło
Wiem, że jestem spóźniony o wiele lat, ale pomyślałem, że zrobiłem coś złego i wykonałem powyższe kroki, a potem zdałem sobie sprawę, że przez pomyłkę ustawiłem konfigurację rozwiązania na „Release” :)
źródło