Pembaruan 22 Februari 2013 : Entri Microsoft Connect memiliki catatan dari Alok Shriram (Manajer Program, Perpustakaan Kelas Dasar, .NET Framework) bahwa masalah sekarang harus diselesaikan. Entri Connect ditandai sebagai Terselesaikan (Tetap) :
Masalah ini sekarang harus diperbaiki. Kami menerbitkan pembaruan untuk sumber referensi. Beri tahu kami jika masalah Anda masih belum terselesaikan.
Satu setengah tahun.
Tautan Bonus
Pertanyaan Asli
Bagaimana cara mengaktifkan .NET framework sumber melangkah di Visual Studio 2010?
Catatan : Pertanyaan ini adalah satu bagian dari keseluruhan yang lebih besar:
- .NET 2.0 WinForm: Mendukung DPI dan Perubahan Font Default
- Kontrol WinForms tidak berskala selama ScaleControl
- VS2010: Bagaimana cara mengaktifkan "Enable .NET Framework source stepping"?
- Visual Studio 2010 Professional: Bagaimana cara mengakses jendela modul?
- Visual Studio 2010: Properties.Settings rusak setelah menargetkan ulang proyek ke .NET Framework 3.5
Visual Studio 2010 hadir dengan fitur baru:
- Alat, Opsi, Debugging, Umum, Aktifkan loncatan sumber .NET Framework
Mengikuti petunjuk di halaman MSDN Cara: Debug .NET Framework Sumber :
Untuk mengaktifkan debugging sumber .NET Framework
Pada menu Alat , klik Opsi .
Di kotak dialog Opsi , klik kategori Debugging .
Di kotak Umum , pilih kotak centang berikut ini:
- Aktifkan loncatan sumber .NET Framework
- Aktifkan dukungan server sumber
Saya melakukan ini:
Catatan : Anda akan mencatat, seperti yang dicatat halaman MSDN, dan seperti yang saya perhatikan, bahwa mencentang Enable .NET Framework source stepping akan secara otomatis menghapus centang ** Enable Just My Code (Managed only). Saya juga mengaktifkan pesan diagnostik dukungan server sumber.
Mengaktifkan opsi tersebut secara otomatis mengatur lokasi unduhan cache simbol untuk saya:
Catatan : Entri Microsoft Symbol Server sudah ada (dan tidak dapat dihapus).
Halaman MSDN mengatakan untuk memuat simbol:
Untuk memuat simbol Framework menggunakan jendela Modules
Di jendela Modules , klik kanan modul yang simbolnya tidak dimuat. Anda dapat mengetahui apakah simbol dimuat atau tidak dengan melihat kolom Status Simbol .
Arahkan untuk Memuat Simbol Dari dan klik Server Simbol Microsoft untuk mengunduh simbol dari server simbol publik Microsoft atau Jalur Simbol untuk memuat dari direktori tempat Anda sebelumnya menyimpan simbol.
Saya coba ini:
dan kemudian semua simbol dimuat:
Saya telah duduk di breakpoint, yang akan memanggil kode framework .NET:
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
Mendorong F11menyebabkan debugger melompat ke baris berikutnya:
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);
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Saya duduk di breakpoint dalam kode saya. Saya mencoba mengklik dua kali pada fungsi lebih jauh di tumpukan panggilan. Ini akan, saya harap, memungkinkan saya untuk melompat ke kode .NET:
Kecuali itu tidak berhasil: Visual Studio memberi tahu saya bahwa tidak ada sumber yang tersedia:
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Jika saya beralih ke tampilan pembongkaran sebelum mencoba masuk ke kode .NET ( Debug -> Windows -> Pembongkaran ), saya dapat melihat call
ke dalam kode .NET:
Dan ketika saya melakukannya, saya akhirnya men-debug pembongkaran System.Windows.Forms.ScaleControl
:
Yang tidak sama dengan, atau berguna seperti, bisa masuk ke sumber .NET Framework.
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Jalur cache simbol yang dikonfigurasi di komputer saya memang berisi file cache simbol:
Jadi itu mengunduh pdb
file simbol, tetapi menolak untuk menggunakannya.
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Leppie menyarankan agar saya memeriksa Debug
log (dengan jendela log debug terbuka; jika tidak, log tidak akan mencatat apa pun):
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Sebelumnya di log saya melihatnya memuat simbol untuk System.Windows.Forms.dll
:
Loaded 'C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded.
Jadi yang menemukan simbol-simbol, tapi mengklaim bahwa itu tidak bisa menemukan mereka.
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Seorang pria dari Microsoft Italia menyarankan untuk mematikan Memerlukan file sumber agar sama persis dengan versi aslinya :
Itu tidak memperbaikinya.
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Telah disarankan bahwa ada bug dengan server sumber Microsoft untuk .NET Framework 4.0 . Mengikuti saran itu, saya mengalihkan proyek ke target .NET Framework 3.5 :
Itu tidak memperbaikinya.
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Seseorang di suatu tempat dengan iseng bertanya-tanya apakah orang lain yang mengalami masalah yang sama menggunakan debugger versi 64-bit . Sekarang, tidak ada yang namanya Visual Studio versi 64-bit, tetapi saya mencoba mengalihkan proyek saya dari AnyCPU ke x86 (sedang JITed ke x64), jika Microsoft tidak mendukung prosesor 64-bit:
Itu tidak memperbaikinya:
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Bagaimana cara mengaktifkan sumber .NET Framework yang melangkah di Visual Studio 2010?
Lihat juga
- Konfigurasi Visual Studio untuk Debug .NETFramework Source Code
- Tidak dapat men-debug kode framework .NET di VS2010
- Langkah sumber kerangka .NET tidak berfungsi meskipun opsi ditetapkan
- Menyiapkan Visual Studio 2010 untuk masuk ke Microsoft .NET Source Code
- Visual Studio 2008 SP1 .NET Framework Debugging Sumber
- Tidak ada Debug> jendela modul di Visual Studio 2008 Versi 9.0.21022.8 RTM
sumber
Jawaban:
PDB untuk menelusuri kode sumber hanya diposting untuk RTM dan Paket Layanan. Dengan demikian, ketika pembaruan keamanan keluar dan memodifikasi dll yang Anda coba debug, itu akan menyebabkan langkah sumber tidak berfungsi (yaitu, Anda akan mendapatkan "Tidak ada sumber yang Tersedia" dengan abu-abu "Jelajahi untuk menemukan Sumber ").
Namun, setelah Anda membuat semua pengaturan yang sesuai, Anda dapat menggunakan solusi berikut. Solusinya pada dasarnya adalah menemukan pembaruan keamanan yang menyebabkan dll berubah, dan kemudian menghapusnya. Ini memiliki kelemahan yang jelas karena pembaruan keamanan tersebut dihapus di komputer Anda.
Solusi
site:support.microsoft.com/kb System.Windows.Forms.dll 4.0.30319.269
http://support.microsoft.com/kb/2604121
, jadi KB2604121, adalah yang kami minati.Anda harus melakukan ini untuk setiap dll dalam kerangka .NET yang Anda pedulikan tentang debugging.
Setelah selesai, atur breakpoint dalam sumber .net (misalnya, buka tab Breakpoints, katakan New-> Break at Function, dan masukkan System.Windows.Forms.Form.Form) atau masuk ke salah satu .net metode di dll itu.
sumber
Meskipun sayangnya ada masalah dengan Microsoft, seperti yang ditunjukkan Leppie (dan saya mendapatkan hasil yang sama
perlu dicatat bahwa upaya Anda akan gagal, karena Anda merujuk:
dari pada:
referencesource.microsoft.com/symbols
Lihat bagian Tanya Jawab / Pemecahan Masalah Konfigurasi Visual Studio untuk Debug Kode Sumber .NET Framework
sumber
Saya telah menemukan jawabannya, saya pikir.
Saya menelusuri apa yang terjadi pada Fiddler. Sepertinya hanya simbol yang tersedia saat ini, dan tidak ada sumber.
Ketika VS mencoba untuk memuat simbol dari server 'sumber referensi' itu gagal (404). Karena ini gagal, saya pikir itu tidak dapat memetakan ke file sumber di server itu.
http://referencesource.microsoft.com/symbols/mscorlib.pdb/ED96A7F38A2940F39B9CA7AD9BC5CB671/mscorlib.pdb
Setelah kegagalan di atas, ia mencoba beberapa server bernama 'msdl' di mana ia menemukan PDB sebenarnya (tetapi tampaknya yang satu ini tidak memiliki info kode sumber).
http://msdl.microsoft.com/download/symbols/mscorlib.pdb/ED96A7F38A2940F39B9CA7AD9BC5CB671/mscorlib.pd_
Secara keseluruhan, tampaknya ini adalah masalah Microsoft (sementara) dengan server mereka.
Saya yakin saya memiliki beberapa kode sumber beberapa waktu lalu. Tapi sekarang tidak berhasil.
Edit:
Saya mencobanya dengan berbagai versi .NET, semua hasilnya sama. :(
sumber
Untuk saat ini tidak berfungsi jika Anda menginstal SP1. Berikut beberapa komentar tentang bentuk masalah MS: http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/41388c7b-582b-4e3f-8178-3d38a3c99639
sumber
Dalam kasus saya, saya men-debug aplikasi WinForms .NET 2.0 lama dan saya mendapat pesan "Sumber Tidak Tersedia" . Saya mencoba semua pengaturan yang direkomendasikan.
Pada akhirnya, saya membangun kembali aplikasi untuk sementara menargetkan .NET 4.5 dan dapat membuat sumbernya melangkah untuk bekerja. Mungkin aplikasi saya terlalu tua untuk melangkah ke sumber. Agak mengalahkan tujuannya, saya tahu, tapi untuk pengujian cepat dan kotor itu berhasil. Bug yang saya miliki masih ada di .NET 4.5 . :)
sumber
Anda dapat menemukan sumber referensi di sini, tersedia untuk diunduh:
Sumber Referensi .NET Framework 4.0
Sumber untuk WCF, WF, dan bahkan 4.5 Beta / RC dan banyak lagi dapat ditemukan di sana juga:
Microsoft Referencesource NetFramework
sumber
Berikut adalah petunjuk resmi https://referencesource.microsoft.com/setup.html
sumber
jika Anda ingin men-debug kode sumber terbuka (seperti paket nuget), Anda dapat menambahkan url ini ke daftar server simbol Anda
http://srv.symbolsource.org/pdb/Public
sumber