Simbol pemuatan Visual Studio

166

Saya sedang mengerjakan ColdFusion proyek untuk sementara waktu sekarang, dan Visual Studio mulai berperilaku aneh bagi saya setidaknya.

Saya mengamati bahwa ketika saya mulai debugging, itu membangun proyek, itu memulai penyebaran, dan penyebaran selesai dan mulai memuat simbol untuk proyek saya.

Tapi itu sangat lambat, dan saya tidak tahu mengapa itu mulai melakukan langkah ini. Apa yang mungkin telah saya lakukan?

Apakah langkah pemuatan simbol ini diperlukan? Bagaimana saya bisa menonaktifkannya?

Dalam Alat -> Opsi -> Debugging -> Simbol dialog tidak ada lokasi file Simbol (.pdb) ditambahkan. Dan saya menunjuk pada direktori debug proyek saya di bidang di bawah ini, dan saya memeriksa kotak centang "Cari direktori di atas hanya ketika simbol ....". Bagaimana cara saya mengatur dialog ini untuk mematikan pemuatan simbol?

Saya melihat di jendela Modul yang simbolnya dimuat, tetapi tidak mengatakan apa-apa kepada saya. Apa masalahnya?

masukkan deskripsi gambar di sini

arnoldino
sumber
3
Saya telah mencoba setiap jawaban di utas tanpa hasil.
Johan Larsson
3
Biasanya simbol harus di-cache dan harus mengambil sedikit atau tidak ada waktu untuk memuat, satu-satunya waktu Anda akan melihat pemuatan simbol menjadi lambat adalah jika simbol memuat dari server simbol microsoft yang sangat sangat lambat misalnya (tidak selalu sangat lambat tetapi tidak lambat tidak ada semakin sedikit), jadi salah satu cara yang baik untuk mencoba dan mengatasi masalah ini adalah dengan menghapus cache simbol, cukup buka Debug -> Opsi -> Debugging -> Simbol dan klik cache simbol kosong, jika ini tidak berhasil bisa jadi masalah lain sama sekali, semoga ini bermanfaat bagi seseorang karena pertanyaannya adalah 3 tahun (:
daniel

Jawaban:

266

Debug -> Hapus Semua Breakpoints ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) Setelah itu Anda dapat menggunakannya lagi, tetapi lakukan sekali. Ini akan menghapus semacam breakpoint "tidak valid" juga dan kemudian memuat simbol akan cepat lagi. Saya mengejar masalah ini selama berhari-hari :(.

peterfoldi
sumber
4
Visual Web Developer 2010 Express pengguna dapat menekan CTRL + SHIFT + F9 dan prompt "Apakah Anda ingin menghapus semua breakpoints?" akan muncul. Anda memerlukan setidaknya satu breakpoint aktif (tidak yakin apakah breakpoint latar belakang yang bermasalah dihitung jadi atur satu). Terima kasih! Jauh lebih cepat sekarang ...
Cymen
Bintang yang luar biasa! Terima kasih banyak.
user489998
Memang ini berhasil! Luar biasa! Adakah yang sudah melaporkan bug yang jelas ini ke Microsoft?
real_yggdrasil
Awal Anda, ini telah membuat saya gila selama berhari-hari. Terima kasih banyak!
markpcasey
Yah, itu tidak terduga! Benar-benar berhasil. Anda menyelamatkan hari saya, terima kasih banyak!
tmatuschek
132

Alasan lain untuk memuat lambat adalah jika Anda telah menonaktifkan "Aktifkan Just My Code" di opsi Debugging. Untuk mengaktifkan ini, buka:

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

Pastikan ini dicentang.

nietras
sumber
Opsi "Just My Code" tidak tersedia dalam dialog Options di beberapa versi Express Visual Studio (meskipun dalam Visual C # 2010 Express), tetapi dapat diubah dengan cara lain: Bagaimana cara menonaktifkan 'Just My Code 'dalam Visual Basic 2005 Express? .
Peter Mortensen
3
Ini adalah salah satu yang memperbaikinya bagi saya ... bukan jawaban "Hapus Semua Breakpoint".
Mark Brittingham
Ini hanya tentang opsi terburuk di Visual Studio. Jauh lebih baik untuk menonaktifkan pemuatan simbol sehingga Anda masih bisa melihat pengecualian melempar dan menumpuk bingkai yang hanya merupakan simbol yang hilang. (Hanya beberapa angka yang sulit dibaca daripada nama). Tentu saja, saya biasanya bekerja pada kode situs web, jadi ada banyak IIS di bawah saya yang bisa gagal. Biasanya hanya membatalkan pilihan server simbol Microsoft (dan semua remote) sebagai sumber data akan bekerja.
ebyrob
Anda menyelamatkan setengah hari saya ...! : D
Vaibhav Deshmukh
43

Konfigurasikan di Alat, Opsi, Debugging, Simbol.

Anda dapat menonton jendela keluaran (tampilan, keluaran) untuk melihat apa yang biasanya dilakukan. Jika benar-benar lambat itu mungkin berarti mengenai server simbol, mungkin milik Microsoft, untuk mengunduh simbol yang hilang. Ini membutuhkan tiga klik HTTP untuk setiap file yang tidak dapat ditemukan pada setiap startup - Anda kadang-kadang dapat melihat ini di bilah status di bagian bawah atau di misalnya Fiddler. Anda dapat melihat modul mana yang memuat simbol dalam Debug, Windows, Modul saat Anda sedang debug.

Simbol berarti Anda mendapatkan informasi jejak tumpukan yang berguna ke pihak ketiga dan sistem rakitan. Anda pasti membutuhkannya untuk kode Anda sendiri, tetapi saya pikir itu bisa dimuat terlepas. Taruhan terbaik Anda adalah mematikan sumber simbol non-lokal di menu itu dan, jika Anda memuat banyak simbol untuk rakitan sistem yang tidak perlu Anda debug ke dalamnya, Anda dapat menonaktifkan sementara memuatnya untuk mempercepat mulai debug - tetapi mereka sering berguna untuk dimuat.

Rup
sumber
3
Dalam Alat -> Opsi -> Debugging -> Simbol dialog tidak ada lokasi file Simbol (.pdb) ditambahkan. Dan saya menunjuk pada direktori debug proyek saya di bidang di bawah ini, dan saya memeriksa kotak centang "Cari direktori di atas hanya ketika simbol ....". Saya tidak tahu bagaimana cara mengatur dialog ini untuk mematikan pemuatan simbol.
arnoldino
1
Hmm, saya tidak tahu. Anda perlu memuat simbol untuk kode Anda sendiri untuk debug itu jadi saya tidak berpikir Anda ingin mematikannya sepenuhnya. Saya kira saya akan melihat jendela Modul untuk melihat simbol mana yang dimuat, mencari tahu mana yang sebenarnya Anda butuhkan dan kemudian mungkin menghapus .pdb dari cache simbol Anda untuk simbol yang tidak Anda inginkan?
Rup
1
Periksa 'gunakan server simbol microsoft', jalankan kode Anda sekali, dan kemudian semua simbol ada di Cache. Anda sekarang dapat menghapus centang pada kotak untuk meningkatkan kecepatan.
john ktejik
1
Menonaktifkan Microsoft Symbol Server di Tools -> Options -> Debugging -> Symbols memperbaiki ini untuk saya. Sebelum saya menunggu 30 detik untuk memulai debug. Sekarang hanya sekitar satu detik.
Mike Chamberlain
41

Baru saja mengalami masalah ini.

Saya memperbaikinya dengan menavigasi ke:

Alat -> Opsi -> Debugging -> Simbol

Kemudian hapus centang semua sumber non-lokal untuk lokasi file Symbol (.pdb)

misal Microsoft Symbol Server dan msdl.microsoft.com/download/symbols

JohnMcC
sumber
23

Saya menghadapi masalah yang sama. Dalam kasus saya, saya telah menetapkan _NT_SYMBOL_PATH untuk mengunduh dari Server Microsoft untuk digunakan di WinDbg dan sepertinya ketika diatur, Visual Studio akan menggunakannya tanpa ada cara untuk mengabaikannya. Menghapus variabel lingkungan itu menyelesaikan masalah saya.

jcarle
sumber
Ini memecahkan masalah bagi saya juga (saya kira rendahnya jumlah upvotes disebabkan oleh rendahnya jumlah orang yang telah menetapkan variabel ini ...) Terima kasih!
Aasmund Eldhuset
Sama disini. Saya pikir saya bisa menghapus centangnya dari simbol, tetapi tidak, env var harus dihapus / diganti namanya.
codekaizen
16

Anda dapat mencoba jawaban berikut untuk debugging / loading Visual Studio sangat lambat :

  1. Pergi ke Alat -> Opsi -> Debugging -> Umum

  2. Periksa tanda centang di sebelah "Aktifkan Just My Code".

  3. Pergi ke Alat -> Opsi -> Debugging -> Simbol

  4. Klik tombol "..." dan buat / pilih folder baru di suatu tempat di komputer lokal Anda untuk menyimpan simbol yang di-cache. Saya menamai milik saya "Symbol caching" dan menaruhnya di Documents -> Visual Studio 2012.

  5. Klik "Muat semua simbol" dan tunggu hingga simbol diunduh dari server Microsoft, yang mungkin memerlukan waktu cukup lama. Perhatikan bahwa tombol Muat semua simbol hanya tersedia saat debugging.

  6. Buang tanda centang di sebelah "Server Simbol Microsoft" untuk mencegah Visual Studio dari jauh menanyakan server Microsoft.

  7. Klik "OK".

Coba juga untuk menghapus semua breakpoints (Debug> Hapus semua breakpoints),

Lihat Juga : Visual Studio 2015 RC1 Hang dalam mode Debug saat memuat simbol

HH
sumber
6

Bagi saya, sepertinya terkait dengan breakpoints, seperti ditunjukkan dalam jawaban yang diterima. Namun, saya menemukan dua solusi yang tidak melibatkan menghapus semua breakpoint:

  • Restart Visual Studio sepertinya memperbaikinya untuk sementara.
  • Mengklik tombol "X" untuk menutup Visual Studio saat debugging menyebabkan "Apakah Anda ingin berhenti debugging?" kotak pesan untuk muncul; saat kotak pesan ini naik, simbol memuat dengan kecepatan biasa. Setelah semua simbol dimuat, Anda dapat mengklik "Tidak" untuk membatalkan penutupan.
Cameron
sumber
3
terima kasih atas solusi gila ini (dengan pesan 'Anda ingin menghentikan debugging'). Saya mencoba jawaban lain terlebih dahulu, tetapi sejauh ini hanya "X" merah dan trik 'apakah kamu mau ...' membantu. terima kasih, saya kehilangan kewarasan saya ...
pestophagous
2
@que: Heh, sama-sama! Saya menemukannya secara tidak sengaja. Sepertinya VS memiliki loop pesan terpisah yang digunakan untuk dialog modal itu, jadi setiap kali itu menjadi lamban tanpa alasan muncul dialog kadang-kadang membantu :-)
Cameron
6

Baru saja mengalami masalah ini. Menghapus breakpoints tidak berhasil, atau setidaknya tidak hanya dengan sendirinya. Setelah gagal, saya pergi Alat> Opsi> Debugging> Simbol dan "Empty Symbol Cache"

dan kemudian membersihkan solusinya dan dibangun kembali.

Sekarang sepertinya sudah berfungsi dengan benar. Jadi, jika Anda mencoba semua hal lain yang tercantum, dan masih tidak membuat perbedaan, info tambahan ini dapat membantu ...

SteveL
sumber
2

Dalam kasus saya Visual Studio sedang mencari PDB pihak ke-3 di jalur yang, pada mesin saya, dirujuk drive optik. Tanpa disk dalam baki itu butuh sekitar Windows sekitar ~ 30 untuk gagal, yang pada gilirannya memperlambat Visual Studio ketika mencoba memuat PDB dari lokasi itu. Detail lebih lanjut tersedia di jawaban lengkap saya di sini: https://stackoverflow.com/a/17457581/85196

Mike
sumber
2

Saya memiliki masalah yang sama dan bahkan setelah mematikan pemuatan simbol, pemuatan modul dalam Visual Studio sangat lambat.

Solusinya adalah untuk mematikan perangkat lunak antivirus (dalam kasus saya NOD32) atau lebih baik lagi, untuk menambahkan pengecualian sehingga mengabaikan jalur dari mana proses Anda memuat rakitan (dalam kasus saya itu adalah folder GAC dan ASP Sementara) Folder .NET File).

twoflower
sumber
2

2 sen saya,

Saya mengalami masalah yang sama ketika mencoba untuk mendapatkan Laporan Diagnostik (Visual Studio 2013) dalam Mode Rilis x64 (CPU Sampling) dan sementara simbol untuk file dll yang diperlukan dimuat, simbol untuk executable saya akan gagal dimuat.

Saya tidak mengubah apa pun di menu Simbol, saya malah membuat beberapa perubahan dalam Halaman Properti dari utas yang dapat dieksekusi di Solution Explorer, yaitu

Properti Konfigurasi / Umum / Aktifkan Build Bertambah Terkelola ke YES

Properti Konfigurasi / Debugging / Gabungkan Lingkungan menjadi NO

Properti Konfigurasi / C / C ++ / Aktifkan Jelajahi Informasi ke YES (/ FR)

Properti Konfigurasi / Linker / Aktifkan Penambahan Bertautan ke YES (/ INCREMENTAL)

EDIT: Yang terakhir ini berhasil

....

Properti Konfigurasi / Linker / Debugging / Hasilkan Info Debug ke Ya (/ DEBUG)

....

Setelah itu bekerja dan itu memuat simbol dengan baik. Saya yakin satu atau lebih hal di atas berhasil untuk saya (walaupun saya tidak yakin persisnya) dan hanya ingin memberi tahu orang lain dan mencoba ini ..

perdamaian

pengguna3374479
sumber
1

Coba klik kanan di salah satu breakpoints, lalu pilih 'Lokasi'. Kemudian centang kotak 'Izinkan kode sumber berbeda dari versi asli'

Jeremiah Anthony
sumber
1

Visual Studio 2017 Simbol debug "opsi", dengan asumsi Anda belum menjadi gila pada kustomisasi opsi:

  1. Di Tools -> Options -> Debugging -> Symbols
    a. Aktifkan opsi "Microsoft Symbol Server"
    b. Klik "Empty Symbol Cache"
    c. Setel cache simbol Anda ke tempat yang mudah ditemukan, seperti C:\dbg_symbolsatau%USERPROFILE%\dbg_symbols
  2. Setelah menjalankan kembali Debug, biarkan ia memuat semua simbol satu kali, dari awal hingga akhir, atau sebanyak mungkin.

1A dan 2 adalah langkah paling penting. 1B dan 1C hanyalah perubahan bermanfaat untuk membantu Anda melacak simbol Anda.

Setelah aplikasi Anda memuat semua simbol setidaknya satu kali dan debugging tidak dihentikan sebelum waktunya, simbol-simbol tersebut harus dimuat dengan cepat saat debug berikutnya berjalan.

Saya perhatikan bahwa jika saya membatalkan debug-run, saya harus memuat ulang simbol-simbol itu, karena saya kira mereka "dibersihkan" jika baru diperkenalkan dan tiba-tiba dibatalkan. Saya memahami dasar pemikiran untuk aliran semacam itu, tetapi dalam kasus ini tampaknya dipikirkan dengan buruk.

kayleeFrye_onDeck
sumber
0

Hapus tanda centang "Aktifkan debugging JavaScript untuk ASP.NET (Chrome dan IE)" di Tools-> Options-> Debugging-> General menyelesaikan kasus saya dengan tidak tersedianya meluncurkan debugger VS2017 dengan breakpoint yang telah ditentukan sebelumnya.

Angel_D
sumber
0

Satu-satunya hal yang berhasil bagi saya adalah mengubah jenis kode.

Dalam Lampirkan ke Proses jendela, saya mengubah Lampirkan ke: seleksi untuk secara otomatis menentukan jenis kode debug , maka breakpoints saya adalah hit.

Sebelumnya saya hanya memilih kode asli .

apohl
sumber
0

Saya memiliki masalah serupa di mana studio visual terus memuat simbol dan macet.

Ternyata saya menambahkan beberapa "argumen baris perintah" di opsi Debug, dan salah satu parameter tidak valid (saya seharusnya memberikan beberapa nilai). masukkan deskripsi gambar di sini

Setelah saya menghapus parameter tambahan, itu mulai berfungsi lagi.

Hainan.Z
sumber