Як виправити "Точку розриву наразі не вдаримо. Для цього документа символи не завантажені. " увага?


1573

Програма на робочому столі C # у експрес-виданні працювала, тоді не працювала 5 секунд пізніше.

Я спробував таке:

  • Переконайтеся, що конфігурація налагодження, прапор налагодження та повна інформація про налагодження встановлені на всіх збірках.
  • Видаліть усі папки bin та obj та всі DLL-файли, пов'язані з проектом, з усієї моєї машини.
  • Відтворіть проекти, що викликають проблему з нуля.
  • Перезавантажте.

У мене є два проекти WinForms у рішенні. Один із них завантажує інформацію про налагодження, а інша - ні. Вони обидва посилаються на збірку, на яку я намагаюся отримати інформацію про налагодження точно так само у файлі проекту. Будь-які ідеї?


Я хочу додати тут, в основному для себе, коли я повертаюся, щоб переглянути це питання, що символи не завантажуються до монтажу, і збірка не завантажується, поки це не потрібно. Якщо точка розриву знаходиться в бібліотеці, яка використовується лише в одній функції у вашій головній збірці, символи не завантажуватимуться (і вона показуватиме точку розриву як не вдарену), поки ця функція не буде викликана.


119
Під час налагодження перейдіть до вікна Налагодження, Windows, Модулі. Тут з’явиться інформація про завантажені модулі та стан символів. Ви можете клацнути правою кнопкою миші модуль і спробувати завантажити символи з іншого місця.
Поліфун

14
Експрес-видання не має перегляду модулів.
Мисливець на екземпляри

12
Хороший момент про збори, які не завантажуються до необхідності. Відладчик покаже, що точка розриву не буде потраплена, але дисплей зміниться / ваша точка розриву буде вражена, коли збірка завантажена. Сирним способом вирішити цю проблему інтерфейсу було б зробити дзвінок до збірки при запуску програми, щоб змусити збірку завантажуватися.
Тім Кокер

1
У мене була така ж проблема, і я помітив, що для цієї конфігурації збірки я не мав <DebugSymbols>true</DebugSymbols>її під VS2015, я вручну додав її, і вона працювала чудово.
kuskmen

4
Видалення файлу .suo, можливо, вирішило цю потворну проблему в моєму проекті
Roland

Відповіді:


1083

Почніть налагодження, як тільки ви дійшли до точки перерви або використали Debug > Break All, використовуйте Debug > Windows > Modules. Ви побачите список усіх збірок, які завантажуються в процес. Знайдіть потрібну інформацію про налагодження. Клацніть правою кнопкою миші та виберіть Інформацію про завантаження символу. Ви отримаєте діалогове вікно, в якому перераховані всі каталоги, де він шукав .pdb файл для складання. Перевірте цей список щодо фактичного .pdb місця. Переконайтесь, що він не знайде старого.

У звичайних проектах збірка та її .pdb файл завжди повинні були скопіювати IDE в ту саму папку, що і ваш .exe. Папка bin \ Debug вашого проекту. Переконайтесь, що ви вилучили його з GAC, якщо ви грали з ним.


4
Ефективно це було питанням у моєму випадку. У нас був посткомпілятор, який змусив його не вважатися "Кодом користувача" ... тепер я маю побачити, що з цим відбувається, але я підтвердив, що без змін посткомпіляції символи завантажуються. @Hans спасибі, врятувавши мені кілька хороших хвилин! відправляє віртуальне пиво
eglasius

29
Питання стосується експрес-видання, на яке ця відповідь, на жаль, не стосується. Насправді жодна з відповідей не працює для мене, я також спробував видалити папку Налагодження та відновити її.
Ніколя Рауль

3
Microsoft Visual Studio Express 2013 для Web не має можливості налагодження модулів Windows. Як користуватися виправити це в цьому випадку?
Андрус

3
Як підказку, увімкніть свої винятки, щоб вони зламалися там, де ви хочете (якщо ви не в змозі поставити крапку на початку процесу) ... Потім виконайте рекомендований Ханом процес налагодження> Windows> Модулі. Шукайте проект, в який ви намагалися вступити, і подивіться на ПАТ. якщо він говорить "C: \ windows \ Assembly", то його вказівка ​​на dcl GAC, а НЕ на проект ...
Енді Небезпека Gagne

5
У мене було встановлено активну конфігурацію мого рішення на Release, змінивши її назад на Debug, щоб вирішити мою проблему. Ця відповідь допомогла мені «пригадати», що шукати
gilad

436

Спочатку спробуйте відновити проект правою кнопкою миші, натисніть проект> Перебудувати. Якщо це не працює, спробуйте очистити проект (клацніть правою кнопкою миші на проекті> очистити)

Якщо це не спрацювало, перевірте це:

  1. Клацніть правою кнопкою миші ваш проект
  2. Виберіть [Властивості]
  3. Перейдіть на вкладку [Build]
  4. Переконайтесь, що [Визначити постійну відмітку] та [Визначити константу TRACE] встановлено прапорець
  5. Переконайтесь, що [Оптимізувати код] не встановлено прапорець
  6. Натисніть кнопку [Додатково] внизу сторінки вкладки Збірка
  7. Переконайтесь, що для параметра [Інформація про відладку:] встановлено значення [повне]
  8. Клацніть [OK] та відновіть проект ;-)

(крок 6 генерує .pdb файли; це символи налагодження)


40
Переконайтесь, що для параметра [Інформація про налагодження:] встановлено значення [повне] - виправлено це для мене! У мене на моєму проекті створено кілька конфігурацій, нові, які я додав, не мали цього набору.
Chiefy

1
Це працювало для мене! Але замість [full] мені вдалося зробити лише pdb
Aaron Shaver

42
Виявляється, я був у складанні релізів. цк.
ПНДА

2
Якщо у вас змішаний проект C ++ / C # з вродженим запуском, переконайтесь, що проект "Налагодження> Тип налагодження змішаний.
Білл Хоґ

4
Я також повинен був переконатися, що Properties > Build > Optimize codeце не було перевірено .
jeffaudio

272

Просто щось просто спробувати - ви, можливо, вже спробували це. Клацніть правою кнопкою миші Рішення в провіднику рішень, натисніть «Очистити рішення», при цьому видаляються всі складені та тимчасові файли, пов’язані з рішенням .

Зробіть відновлення рішення та спробуйте налагодити його знову.

У мене також виникли проблеми з вирішенням декількох проектів у вирішенні - деякі складені як x86, інші як x64.


5
Як ви зафіксували точки розриву за допомогою декількох проектів у рішенні - деякі складені як x86, а інші як x64?
Річард Лі

3
Якщо ви використовуєте IISExpress (або емулятор Azure), файли в C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Тимчасові файли ASP.NET \ root не можуть оновлюватися, якщо ваш AssemblyVersion є 1.0.0.0. Переконайтеся, що це щось на зразок 1.0. *, Щоб нова версія генерувалася щоразу, коли ви створювали веб-проект. Clean Solution не очищає папку тимчасових Інтернет-файлів.
Майкл Ланг

1
Це робить те саме, що робити Rebuild All.
Джонатан Вуд

2
@jonathan Wood - Я з цим здебільшого погоджуюся. Але в рідкісних випадках Rebuild All може дати дещо інші результати - я знаю, що часом спостерігав дивні відмінності. Погляньте тут на цікаву дискусію: stackoverflow.com/questions/1247457/…
Патрік

1
Для мене це було просто "Збірка" ... "Чисте рішення"
Домінік Ісая

238

Вимкніть параметр "Просто мій код" у налаштуваннях налагодження / загальні.


2
Так, для проекту Windows Phone 8 із власною конфігурацією збірки, це було для мене.
GONeale

2
Працював для мене з Windows Phone 8.1 та VS Community 2015.
Fabiano Araujo

20
Щоб було зрозуміло: у VS 2017 цей параметр є спеціально у діалоговому вікні «Інструмент», «Параметри» на панелі «Налагодження», «Загальне» (для точності немає панелі «Налагодження»). Поставити прапорець "Увімкнути просто мій код", а не "Просто мій код".
Язимов

1
Це працює для мене, однак я не можу бачити значення змінної при наведенні чи зсуві + f9 отримання помилки. Неможливо отримати значення локального чи аргументу, оскільки воно не доступне в цьому вказівнику інструкції, можливо, тому, що воно було оптимізовано далеко
Naveen Kumar

1
Ще працюю у Visual Studio 2019!
Тобі

148

Перехресне повідомлення про це виправлення від Ханса К, яке я знайшов у подібній темі >> ТУТ << :

Клацніть правою кнопкою миші рішення -> Властивості

Подивіться у розділі Загальні властивості -> Запуск проекту

Виберіть кілька запуску проектів

виберіть пункт Почати дії над проектами, які потрібно налагодити.


7
Це також обробляє ситуації, коли ви намагаєтеся налагодити веб-проект, який є .NET, видаляючи кінцеву точку, запущену на сервері розробки VS та показуючи "ніякі символи не завантажені".
D-секта

1
Це зафіксувало це для мене. Я думаю, раніше хтось намагався приєднати налагодження до локального сервера IIS замість налагоджувальної версії IIS, яку використовує візуальна студія.
Даулери

1
Якщо ви видалили файл .suo, ви можете втратити вибрані тут налаштування рішення, і вам доведеться їх встановити заново
Погашено1

Сьогодні я знову перевірив ці налаштування після того, як раніше було успішно налагоджено, і виявив, що стартові проекти якимось чином повернулися до одного стартового проекту. Варто подвоїти перевірку.
Ентоні Де Суза

64

Обрана відповідь змусила мене виправити свою проблему. Але мені потрібно зробити ще кілька речей:

Навіть із пунктом "Налагодження", вибраним у спадному меню:

введіть тут опис зображення

І в проекті Властивості> Побудувати:

введіть тут опис зображення

Visual Studio не завантажував символи для конкретного проекту. Тож у цьому спадному меню я вибрав "Менеджер конфігурацій" і побачив, що настройки для мого веб-проекту були невірними:

введіть тут опис зображення

введіть тут опис зображення

Потім я встановив це на "Налагодження", і він почав генерувати .pdbфайл. АЛЕ мені потрібно вручну скопіювати PDB та DLL та помістити у папку, яку шукав VS (ось де вибрана відповідь мені допомогла):

введіть тут опис зображення


1
Я бігав у releaseрежимі. Дякую !!
Діпак Телангре

Ключовим для мене було те, що поле "Розгортання" не було встановлено, тому pdb не було повторно розгорнуто після побудови
Бен

43

Debug> Windows>Modules , Щоб побачити , які модулі були завантажені поставити мене в правильному напрямку.

У моєму випадку IIS Express, здається, завантажує інший DLL від тимчасових файлів ASP.NET.

Рішення?

  1. Перейти до C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. Видаліть усе з цього каталогу!

Це була моя проблема. Папка, мабуть, була повна зламаних DLL-файлів, які завантажувались як перевагу.
gburton

8
Це працювало для мене, за винятком мого випадку, каталог, який мені довелося очистити, був: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Тимчасові файли ASP.NET \ vs \
Енді

У мене була аналогічна проблема, в якій я вже встановив цю програму, і вона завантажувала DLL замість тієї з мого проекту без пов'язаного файлу PDB. Після видалення старого додатка проблему було вирішено для мене. Дякую!
Ленні К

42

Мені вдалося виправити помилку, просто встановивши опцію в опції «Приєднати до процесу» на «Автоматично визначити тип коду для налагодження», як показано на доданому скріншоті.

Просто виконайте наведені нижче дії:

  • Перейдіть до налагодження на панелі меню
  • Клацніть на Прикріпити до обробки
  • Поруч із опцією « Вкласти» , натисніть кнопку « Вибрати »
  • З'явиться вікно Вибір коду типу
  • Тепер виберіть опцію Автоматично визначити тип коду для налагодження та натисніть кнопку ОК.

Виправлена ​​помилка налагодження


10
Для інших, хто спробував усе на цій сторінці, я вирішив свою проблему, перейшовши на "Керований (v4.5, v4.0) код"!
stevekrzysiak

Перехід на "Керований (v4.5, v4.0)" "вирішив це і для мене, налагоджуючи додаток DNN ASP.Net. Дякую!
Ммм

Для мене працював перехід з "Автоматично визначити тип коду для налагодження" на "Керований (v4.6, v4.5, v4.0)". У мене є рішення з двома бібліотеками класів, одна доступна для COM, обидві націлені на рамки 4.6.1.
Йорб

У мене був обраний неправильний варіант (".NET Core" замість "Managed v4.6"). Я вибрав "Автоматично визначити ...", і воно спрацювало! Спочатку я знайшов це рішення у щоденнику блогу blog.simontest.net/… .
Євген Набоков

41

Іноді, хоча це дає вам цю помилку, breakpointвсе одно потрапляє, тому просто ігноруйте помилку. Це відбувається досить часто в ViewsАн MVC web app.


7
Це насправді повинно бути звернене десь до вершини. Я витратив багато часу, роблячи всі відповіді вище, але точка перелому насправді вдарила б. Просто перевірте :) Також це був настільний додаток WPF.
Бартош

4
aspx, здається, збирається на вимогу, тому інформація про налагодження доступна лише після того, як потрібна сторінка aspx
aeroson

Також для UnitTesting - потрібно почекати кілька секунд, і тоді він потрапить.
Девід Рефаелі

Я думаю, що коментар @aeroson - це те, на що я зіткнувся. На одній сторінці завантажені точки перерви, на іншій - ні. Спробував усі варіанти з відповідей тут, а потім оновив цю сторінку, і точки прориву завантажені.
goodeye

спасибі ...
Кайл Хуан

39

Перевірте, чи у файлі bin / Debug відсутній .pbd-файл. Якщо це тоді, перейдіть до "Властивості" вашого проекту, виберіть "Збірка", а потім "Додатково" внизу. У новому вікні, що з’явилося, виберіть "повне" під "Інформація про налагодження" Це було моїм питанням і вирішило його для мене.

Показати, де знайти налаштування


Я б запропонував будь-кому зайти на цю сторінку, щоб переконатися, що створюється pdb, оскільки це було проблемою для мене.
EatATaco

Дякую! "лише для pdb" (а не повного) було достатньо. Також "Додатково" - це кнопка внизу збірки.
Грег Малий

де повинні створюватися pdbs?
ілька

1
Дякую, це виправлено для мене після того, як я зробив нові перетворення Web.config та видалив конфігурації за замовчуванням (наприклад, Web.Debug.config), які надає VS 2017.
Кен Палмер

1
Спробував багато інших варіантів (витратив майже 2 години) Цей "повний" варіант вирішив мою проблему. Дякую!
SoftSan

29

У моєму випадку "Оптимізація коду" була перевірена у властивостях мого проекту. Це спричинило VS бачити мою збірку як "не мій код", і, в свою чергу, вона не завантажувала символи для неї.

Рішенням було зняти це. Розташування прапорця Оптимізувати код


2
Це була і моя проблема, і я переглянув усі вищезазначені рішення по одному, нічого не вийшло.
antikbd

Я скасував цю опцію, чисте рішення, оновлений розчин тощо ... VS завжди розглядав модуль як "оптимізований". Єдиним способом, який я знайшов змусити VS оновлювати інформацію про налагодження, було збільшити версію збірки модуля.
альфанох

Єдине рішення, яке працює для мене, номер для вас (# = ++++), але я можу проголосувати лише один раз
Луїс Лопес


23

Спробуйте запустити візуальну студію як адміністратор у Windows.


1
Мені потрібно було запустити msvsmon як адміністратор на віддаленій машині.
Білл Хог

Це не рішення, яке люди повинні дотримуватися. Якщо це вирішує проблему, то вам слід зосередитись на тому, чому вам потрібні права адміністратора, щоб VS змогла прочитати вміст файлу .pdb вашого проекту.
Язимов

@Jazimov Я не згоден. Хоча я хотів би витратити час на дослідження цього, в моєму випадку це вирішило мою проблему і дозволило мені продовжувати працювати, як я впевнений, що це робилося і для інших. Якщо ви хочете заглянути в це і вдосконалити цю відповідь, не соромтеся, саме для цього і потрібно.
Енді

Щоб було зрозуміло: я розумію, що це вирішило вашу проблему з Visual Studio, це не те, що я заперечував. Я заперечую рекомендацію про те , як інші приймають працює в IDE , як в розчині , а не просто в розчині. Якщо запуск IDE в якості адміністратора виправляє проблему, то цю інформацію слід використовувати для усунення фактичної першопричини, щоб IDE не потребував прав адміністратора для належної роботи.
Язимов

21

У моєму випадку я намагаюся налагоджувати в режимі реле. Як тільки я зміню його на режим налагодження. Це працює


15

Потрібно включити "Створення інформації про налагодження" в налаштуваннях компілятора


1
Де це повинно бути?
MushyPeas

10
Це те саме, що відповідь juFo - Проект> Властивості> Збірка> Розширений> Інформація про налагодження> Повна (або лише для pdb)
Джеремі Томпсон

Слухайте Джеремі Томпсена. Це вирішило для мене проблему.
Thorkil Værge

12

->Параметри налагодження ->Загальна ->зніміть позначку для " Enable Just My Code"

Це працювало для мене.


1
Здається, це може бути налаштування за замовчуванням, яке варто перевірити, якщо оновити VS до новішої версії (як це сталося зі мною).
Агамемнон

10

Ми знайшли причину нашої проблеми. Цей код використовував атрибут "CodeBehind" у директиві Page файлу .aspx замість атрибута "CodeFile" (ASP.NET 2.0 і вище). Після днів відчаю простий пошук і заміна вирішили проблему.


10

У версії Microsoft Visual Studio Express 2013 випуск "Налагодження налагодження, налагодження + модулі Windows +" не існує.

Зніміть прапорець "Використовувати керований режим сумісності" в " Параметри інструментів" Налагодження виправляє це.


10

Перевірте свій Solution Configurationвипадаючий список. Переконайтесь, що ви вибрали Debug, ні Release.


Дякую @ zs2020
Hussain Mir

9

Я спробував все, що було сказано вище, але нічого не вийшло. [Очистіть рішення та перевірте наявність файлів PDB тощо]

Навіть публікація того ж рішення не вирішила проблему.

Тоді я повернувся до того, що зазвичай роблю, щоб вирішити (обдурити цю вперту Visual Studio)

Все, що я зробив, - це зробити навмисну ​​зміну коду та опублікувати рішення. Тоді я змінив зміну і знову опублікував.

Voila [файли PDB позбавляються від злих духів] .. Не розумна резолюція, але це спрацювало ..: - |


7

Веб-додатки (IIS Express):

  • Клацніть правою кнопкою миші IIS Express лоток і закрийте IIS.
  • Чистий розчин

Лоток IIS


Я спробував багато інших пропозицій в інших відповідях, багато з яких мені допомагали в минулому, але сьогодні ця допомогла. У моєму випадку у мене є кілька відділень, і я думаю, що IIS Express якось застряг на іншій гілці і не був освіжаючим за допомогою гілки, яку я намагався налагодити, незважаючи на численні спроби очищення та відновлення.
Кріс Х

6

Жодна з цих відповідей не вирішила моєї проблеми. Я спробував іншу річ, грунтуючись на тому, що проект із зупинкою насправді не був завантаженим проектом. Я виявив, як Ханс Пасант написав, що .dll, де я хочу зупинити налагоджувач, і асоційовані .pdb файли, куди скопіювали біля .exe-файлу. Ці файли мали давнішу дату, тому я подумав, що вони не були оновлені під час виконання. Я вручну видалив їх, Visual Studio створив ще одну пару І поставив цю нову пару біля .exe. Тепер вимикачі працюють!

Можливо, Visual Studio не може скопіювати та замінити існуючі файли (.dll та .pdb) біля .exe, оскільки там є ще один. Тож якщо я видалив вручну, тоді VS міг би створити новий поблизу .exe.

Я думаю, що чергові зміни (перевірки і так далі - з інших відповідей) щось викликали, і Visual Studio скопіював і замінив dll і pdb з папки проекту в папку біля exe, так що це було рішення.

Я думаю, що першопричиною проблеми є те, що Visual Studio використовує інший файл під час виконання, не файл із проекту, із зупинкою.

Може ця відповідь допомогти комусь!


6

Що потрібно перевірити лише для того, щоб було зрозуміло. Переконайтеся, що у вас конфігурація встановлена ​​на "Налагодження", а не "Випуск". Ви можете налагоджувати проект запуску в режимі "Випуск", але не бібліотеку посилань класів.


6

Властивості проекту (потім виберіть конфігурацію збірки)> Вкладка збірки> Додаткові ...> Інформація про налагодження (спадне меню)

Встановіть значення "всі" або "лише для pdb", а потім відновіть


Я зробив pdb_only, також очистив і перезапустив браузер
Jason

6

Замість того, щоб робити всі ці речі просто

Закрийте і знову відкрийте

рішення воно вирішить проблему


Працював для мене в Microsoft Visual Studio 2013 у розділі: Файл> Закрити рішення, а потім Файл> Відкрити рішення (має бути попередньо завантажено тією ж папкою, в якій він був). Точки перериву миттєво перейшли від жовтого прапора до кругового червоного. Тож спасибі
Заргольд

OMG геній! Дякую!!!
AresDev


6

Це зайняло у мене час, коли я спробував інші варіанти вище, і чомусь налагодження перестало працювати.

Інструмент -> Параметри -> Налагодження -> Загальне -> (скасувати) Параметр "Вимагати вихідних файлів, щоб вони точно відповідали початковій версії"


6
  1. Очистіть розчин і відновіть
  2. Перевірте, чи для налаштування встановлено налагодження
  3. Переконайтесь, що файл PDB знаходиться у папці налагодження
  4. У меню Налагодження натисніть Увімкнути всі точки перерви

6

Перевірте, чи такі параметри у Visual Studio однакові:

Клацніть тестовий проект правою кнопкою миші, перейдіть до Властивості, Вкладка Збірка та перегляньте ціль платформи

У мене все встановлено на "Будь-який процесор", так x64

введіть тут опис зображення

На панелі головного меню перейдіть до тестування, налаштувань тесту, архітектури процесора за замовчуванням

Міна була встановлена ​​на X86

введіть тут опис зображення

Якщо змінити цей параметр на X64, який відповідає вищевказаному налаштуванню, змушене вбудоване в меню Visual Studio "Тест (-ів) налагодження" спрацьовує та потрапляє на точки прориву, які раніше були проігноровані повідомленням "Точка розриву наразі не потрапляє. Для цього документа символи не завантажені ".

Оновлення:

Для Visual Studio 2019 меню трохи переміщено: введіть тут опис зображення


5

Я знаю, що запізнився на роки, але я подумав, що я щось зробив не так, і я дотримувався вищезазначених кроків, тоді зрозумів, що встановив конфігурацію рішення на "Випуск" помилково :)


1
Чи можу я підняти 10K разів? Найгірше все те, що я думаю, що я шукав це в google, як 10 разів зараз, і щоразу - одна і та ж дурна помилка. Можливо, Microsoft міг би натякнути це користувачеві?
tfrascaroli
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.