Aktualizacja z 22 lutego 2013 r . : Wpis Microsoft Connect zawiera informację od Aloka Shrirama (Menedżera programów, Biblioteki klas podstawowych, .NET Framework), że problem powinien zostać rozwiązany. Wpis Connect jest oznaczony jako rozwiązany (naprawiony) :
Ten problem powinien teraz zostać rozwiązany. Opublikowaliśmy aktualizację źródeł referencyjnych. Daj nam znać, jeśli problem nadal nie zostanie rozwiązany.
Rok i pół.
Linki bonusowe
Głosuj, aby ten błąd został naprawiony w Microsoft Connect .
Wątek w Microsoft Social, który trwa od półtora roku, z pytaniem, kiedy zostanie naprawiony .
Oryginalne pytanie
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Uwaga : to pytanie jest częścią większej całości:
- .NET 2.0 WinForm: obsługa zmian DPI i domyślnych czcionek
- Formanty WinForms nie skalują się podczas ScaleControl
- VS2010: Jak włączyć opcję „Włączanie krok po kroku źródła .NET Framework”?
- Visual Studio 2010 Professional: jak uzyskać dostęp do okna modułów?
- Visual Studio 2010: Properties.Settings uszkodzony po ponownym skierowaniu projektu do .NET Framework 3.5
Visual Studio 2010 zawiera nową funkcję:
- Narzędzia, opcje, debugowanie, ogólne, włączanie kroku źródłowego .NET Framework
Postępuj zgodnie z instrukcjami na stronie MSDN How to: Debug .NET Framework Source :
Aby włączyć debugowanie źródła .NET Framework
W menu Narzędzia kliknij Opcje .
W oknie dialogowym Opcje kliknij kategorię Debugowanie .
W polu Ogólne zaznacz następujące pola wyboru:
- Włącz stepping źródła .NET Framework
- Włącz obsługę serwera źródłowego
Robię to:
Uwaga : Zauważysz, jak zauważa strona MSDN i jak zauważyłem, że zaznaczenie opcji Enable .NET Framework source stepping spowoduje automatyczne odznaczenie ** Enable Just My Code (only Managed only). Włączyłem również komunikaty diagnostyczne obsługi serwera źródłowego.
Włączenie tych opcji powoduje automatyczne ustawienie lokalizacji pobierania pamięci podręcznej symboli:
Uwaga : Wpis Microsoft Symbol Server jest już obecny (i nie można go usunąć).
Strona MSDN mówi, aby załadować symbole:
Aby załadować symbole struktury za pomocą okna modułów
W oknie Moduły kliknij prawym przyciskiem myszy moduł, którego symbole nie są załadowane. Możesz stwierdzić, czy symbole są załadowane, czy nie, patrząc na kolumnę Status symboli .
Wskaż polecenie Załaduj symbole z i kliknij opcję Serwery symboli firmy Microsoft, aby pobrać symbole z publicznego serwera symboli firmy Microsoft lub Ścieżkę symboli, aby załadować je z katalogu, w którym wcześniej były przechowywane symbole.
Próbuję tego:
a następnie ładowane są wszystkie symbole:
Siedziałem na punkcie przerwania, który ma wywołać kod platformy .NET:
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
Wypchnięcie F11powoduje, że debugger po prostu przeskakuje do następnej linii:
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
//Record the running scale factor used
this.scaleFactor = new SizeF(
this.scaleFactor.Width * factor.Width,
this.scaleFactor.Height * factor.Height);
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Siedzę w punkcie przerwania w moim kodzie. Próbuję dwukrotnie kliknąć funkcję znajdującą się dalej na stosie wywołań. Mam nadzieję, że pozwoliłoby mi to przejść do kodu .NET:
Tyle że to nie działa: Visual Studio mówi mi, że nie ma dostępnego źródła:
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Jeśli przełączę się do widoku dezasemblacji przed próbą przejścia do kodu .NET ( Debug -> Windows -> Disassembly ), widzę call
w kodzie .NET:
A kiedy to zrobię, kończę debugowanie dezasemblacji System.Windows.Forms.ScaleControl
:
Co nie jest tym samym, ani tak przydatne, jak wejście do źródła .NET Framework.
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Skonfigurowana ścieżka pamięci podręcznej symboli na moim komputerze zawiera pliki pamięci podręcznej symboli:
Więc pobiera pdb
pliki symboli, ale odmawia ich użycia.
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Leppie zasugerował, żebym sprawdził Debug
dziennik (przy otwartym oknie dziennika debugowania; w przeciwnym razie nic nie rejestruje):
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Wcześniej w logu widzę jak ładuje się symbole dla System.Windows.Forms.dll
:
Loaded 'C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded.
Więc to jest znalezienie swoje symbole, ale twierdzi, że nie może ich znaleźć.
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Facet z Microsoft Italy sugeruje wyłączenie Wymagaj plików źródłowych, aby dokładnie pasowały do wersji oryginalnej :
To nie rozwiązało problemu.
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Sugerowano, że jest błąd w źródłowym serwerze Microsoft dla .NET Framework 4.0 . Kierując się tą sugestią, zmieniłem projekt na docelowy .NET Framework 3.5 :
To nie rozwiązało problemu.
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Ktoś gdzieś bezczynnie się zastanawiał, czy inna osoba mająca ten sam problem używa 64-bitowej wersji debuggera . Teraz nie ma czegoś takiego jak 64-bitowa wersja Visual Studio, ale próbowałem zmienić mój projekt z AnyCPU na x86 (był JITed na x64), na wypadek, gdyby Microsoft nie obsługiwał procesorów 64-bitowych:
To nie rozwiązało problemu:
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Jak włączyć stepping źródła .NET Framework w programie Visual Studio 2010?
Zobacz też
- Konfigurowanie programu Visual Studio do debugowania kodu źródłowego .NET Framework
- Nie można debugować kodu platformy .NET Framework w VS2010
- Przechodzenie do kodu źródłowego platformy .NET nie działa pomimo ustawionych opcji
- Konfigurowanie programu Visual Studio 2010 w celu przejścia do kodu źródłowego Microsoft .NET
- Debugowanie źródła programu Visual Studio 2008 z dodatkiem SP1 .NET Framework
- Okno No Debug> Modules w programie Visual Studio 2008 w wersji 9.0.21022.8 RTM