у цій папці не знайдено відповідного файлу символів


77

Я хочу використовувати символи налагодження, але я отримую таку помилку:

у цій папці не знайдено відповідного файлу символів

Що це за проблема і як її вирішити?

Відповіді:


39

Одна з речей, з якою я стикався, - це те, що налагодження було вимкнено в проекті, на який посилається код, де живе код. У моєму випадку я зробив нову конфігурацію під назвою "Розробник" і за замовчуванням налагодження було вимкнено.

  1. Клацніть правою кнопкою миші відповідний проект
  2. Властивості
  3. Збірка
  4. Додатково (нижній правий кут)
  5. Встановіть повну інформацію про налагодження
  6. Перекомпілювати

4
Для консольної програми dotnet core 2.0 після того, як я змінив її цільову структуру з netcoreapp2.0на net4.7, налагодження більше не працювало. Однак, змінивши ...-> Додатково -> Вивід -> Інформація про налагодження: від, portableщоб fullвиправити це. Дякую!
Рей

1
Дякую, вам також потрібно це зробити, якщо ви використовуєте посилання на NetStandard у проекті NetFX.
Джонатан Дікінсон,

Це не спрацювало для мене. Коли я вибираю pdbфайл, я отримую цю сумно відому помилку.
Shimmy Weitzhandler

Для мене це не було рішенням. Але я знайшов рішення в плагіні Resharper. У вікні модулів, клацнувши правою кнопкою миші, Resharper має можливість генерувати код з довідкових dll.
Ганеш Ядхав

9

У мене була та ж проблема, що і @DmainEvent. Очевидно, що dll, який я використовував, був не такою ж версією pdb, який я щойно скомпілював, тому я отримав повідомлення про помилку.

Якщо у вас є ця проблема, спробуйте використовувати dll і pdb з одного запуску компіляції.


Була така сама проблема. Я копіював pdb вручну, але він не відповідав попередньо скомпільованій dll C ++, що виконується. Гадаю, я повинен був знати це краще, але це зробило трюк.
Шон Скеллі,

7

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

Visual studio має два параметри рівня проекту, які можуть створювати файли .pdb.

  1. Linker: Властивості конфігурації -> Linker -> Налагодження -> Створити файл бази даних програми = "xxxx.pdb"
  2. Компілятор: Властивості конфігурації -> C / C ++ -> Вихідні файли -> Назва файлу бази даних програми = "yyyy.pdb"

Ви хочете №1 для налагодження. Забудьте про No2. Дайте файлу №2 інше ім’я, ніж файлу №1, щоб вирішити цю помилку.

Не знаю, чому Microsoft визначає №2 як файл .pdb. Це просто бентежить.


20
Питання позначено тегом c # , тому ці налаштування не застосовуються
фліпчарт

4
У моєму випадку налаштування актуальні лише тоді, коли основним додатком є ​​керований код, і я намагаюся налагодити власний код, який виконується обгорткою. Коли я налагоджую рідний c ++ безпосередньо через рідний додаток тестера c ++, він деяким чином виявляє магічну інформацію про налагодження, незважаючи на перезапис файлу pdb. Тож ці налаштування дійсно застосовуються та допомогли мені вирішити мою проблему.
Пеучинський

Ця порада щодо встановлення двох заплутаних шляхів до файлів .pdb працювала для мого власного проекту коду. Тільки я просто встановив дві імена шляхів, №1 та №2, однаковими.
rtischer8277

7

Я перепробував всі можливі рішення, в кінці кінців він працював , коли я відключив опцію Enable native code debuggingпід Debugger enginesз Properties > Debug.


Перевірка цього прапора також зробила для мене фокус. Симптоми були такими, як описаний на плакаті.
Тіммос

5

Я отримав помилку: "відповідний файл символів не знайдено в цій папці" у вікні Налагодження => Модулі навіть після того, як і DLL, і PDB були доступні та побудовані разом, тому мені не вдалося налагодити цільову DLL, на яку посилається мій основний проект.

Опублікувавши це тут на випадок, якщо це допоможе комусь переглядати збірку "Змішана платформа" для цільової DLL. Я зробив дві речі, щоб обійти це:

  1. У рішенні, що використовує цільову бібліотеку DLL, зніміть прапорець біля пункту «Просто мій код» у «Інструменти» => «Параметри» => «Налагодження» => «Загальне»> «Увімкнути лише мій код» (JMC).

  2. Поставте прапорець «Увімкнути налагодження власного коду» у цільовому рішенні DLL у відповідних властивостях проекту => Налагодження.


1
Будь ласка, відформатуйте свою відповідь, щоб зробити її зручнішою для читання (жирним шрифтом, курсивом, списком, відступом коду тощо)
Морзе,

1

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

Деякі речі, над якими слід подумати:

  1. Ви створюєте символи як частину своєї компіляції? (перевірте властивості проекту)
  2. Чи використовуєте ви сервер символів (якщо так, то чи вказує він на потрібне місце)
  3. Це скомпільований код від третьої сторони? У такому випадку, оскільки, мабуть, у вас є джерело, складіть його самостійно.

Подумайте про роз’яснення свого питання, якщо хочете отримати кращу відповідь. Особливо, що ви маєте на увазі під фразою "Я хочу використовувати символи".


я хочу використовувати сервер символів

62
Я постійно отримую повідомлення про те, що файл символів не знайдено в цій папці ... Коли я на власні очі бачу, що файл із символами (pdb) був знайдений у папці з тим самим іменем. Це говорить мені, що файли не однакові. Але як це може бути, коли я щойно скомпілював цю річ і отримав абсолютно новий файл pdb? Це було в папці bin btw.
SoftwareSavant

@SoftwareSavant ти знайшов відповідь?
RJP

1

Ну, рішення залежить від вашої конкретної проблеми. Я спробував усе, що можна знайти на Stackoverflow та інших сайтах. Однією з ниток, яку я прослідував, є ця . Це теж не допомогло. Проблема була вирішена одразу, коли я помітив, що мій виконуваний проект не містить посилання на бібліотеку, яку я хотів налагодити. Тож я щойно додав посилання на цей проект.

** PS: ** Ця проблема може також виникнути, оскільки збірка, на яку посилається виконувана збірка, може не збігатися з такою в посиланнях. Тож у такому випадку ви просто видалите вже наявне посилання та додасте нове.

Сподіваюся, це допомагає!


Як тоді додати так зване "посилання" на проект у Visual Studio?
Чарльз

1

Я виправив свої символи налагодження, змусивши їх збігатися за допомогою цього інструменту:

інструмент chkmatch

Отже, моя проблема полягала в тому, що я намагався налагодити свій проект, і налагоджувач не міг зайти до внутрішніх джерел самородків. У мене були вихідні файли проекту nuget. Проте візуальна студія не приймала файли pdb, я намагався їх показати. Показується така ж помилка:

у цій папці не знайдено відповідного файлу символів

Отже, я додав це у файл .proj проекту nugets:

<DebugType>full</DebugType>

І знову створив файл dll і pdb за допомогою опції відновлення. У командному рядку я запустив:

.\ChkMatch.exe -m name_of_your.dll name_of_your.pdb    

Він сказав це:

Запис у файл інформації про налагодження ... Результат: Успіх.

Великий успіх! Отже, далі я посилався на цю dll, а не на проект, який намагався налагодити. Я працював, коли намагався знову завантажити символ.

Сподіваюся, це допоможе.


0

Я виявив, що це тому, що Властивості => Налагодження => Почати дію було встановлено на Запуск зовнішньої програми замість Проекту. Отже, нещодавно згенерований файл pdb не збігався, оскільки фактичний файл exe був неправильним.


0

Для проектів BizTalk (та інших) це може бути тому, що існує версія збірки, яку ви намагаєтеся налагодити вже в GAC. Коли ви запускаєте модульний тест або натискаєте F5 для налагодження, нова версія компілюється локально. Однак використовується версія в GAC, і нещодавно створений PDB не відповідає DLL в GAC.

Одним із шляхів цього є скасування вибору збірки для всього, крім вашого тестового проекту модуля, за допомогою диспетчера конфігурацій, як показано нижче:

Config Manager


0

Те саме трапляється зі мною, оскільки файл .pdb проекту не скопійований до debug\Binпапки, тому символи не можуть бути завантажені з файлу .pdb.

Ви повинні відновити свій проект і вручну скопіювати символи (файл .pdb) у debug\Binпапку виконуваного проекту.


0

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


-2

У мене ця проблема також була нещодавно. Це вдалося виправити, вибравши MyProject-> Властивості-> Посилання-> Налагодження-> Згенерувати інформацію про налагодження -> «Оптимізувати для налагодження (/ НАЛАДКА)».

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.