Не загружен файл символов

Обновлено: 04.07.2024

У меня действительно проблема, у меня есть решение VS 2010, и оно внезапно прекратило отладку ссылочных проектов, я просто могу отлаживать запускаемый проект, но не добавленный в качестве ссылки. Это странно, потому что я создал новое решение, добавил два проекта, а затем я успешно отладил оба, сделал это, чтобы увидеть, была ли моя конфигурация VS неправильной, но нет, это что-то в этом конкретном решении, которое не позволяет мне отлаживать упомянутые проекты.

Я прочитал все возможные решения с этого форума и других источников, таких как Microsoft. Если я перейду в меню «Отладка» -> «окна» -> «Модули», те, которые я хочу отлаживать, не будут в списке.

Итак, я прочитал страницу Microsoft о том, как вручную загружать символы, я сделал следующее:

Чтобы указать каталог, в котором расположены файлы символов

В меню «Сервис» выберите «Параметры».

В диалоговом окне «Параметры» откройте узел «Отладка» и нажмите «Символы».

На странице «Символы» есть поле, в котором указано расположение файлов символов (.pdb). Над окном четыре значка.

Щелкните значок папки.

Редактируемый текст отображается в поле «Расположение файлов символов (.pdb)».

Введите путь к каталогу. Заполнение выписки поможет вам найти правильный формат.

Если вы выполняете удаленную отладку, файлы символов и кеши серверов символов для управляемого кода должны находиться на удаленном компьютере. Файлы символов и кэши сервера символов для машинного кода должны располагаться на локальном компьютере.

Если вы используете символы на удаленном сервере символов, вы можете повысить производительность, указав локальный каталог, в который можно копировать символы. Для этого введите путь в поле «Кэшировать символы в этом каталоге». Если вы отлаживаете программу на удаленном компьютере, каталог кэша относится к каталогу на удаленном компьютере.

Щелкните ОК.

Это не сработало, я все еще не вижу модули, которые хочу загрузить, так что . есть идеи, друзья?

Я решил, что ответ может быть не лучшим, я почти уверен, но, честно говоря, мне пришлось удалить и переустановить приложение. Работал как шарм. Я знаю, что на это уходит много времени, но я уже потратил время, пытаясь решить эту проблему, так что .

В моем случае у меня было 2 проекта в решении: веб-приложение NET и библиотека классов (на которые будет ссылаться веб-приложение).

Проблема: в обоих проектах (Проект> Свойства> Приложение) у меня было одинаковое значение для имени сборки. Я думаю, что это вызывало конфликт при загрузке PDB для зависимости (проект библиотеки классов).

Решение: измените имя сборки в веб-приложении, очистите и перестройте.

У меня была эта проблема с VS2013.

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

Я закончил копирование исходного кода в другую папку, затем откатил проект до предыдущей версии через git, а затем скопировал только исходный код (без проекта, bin, obj и т. Д.).

Затем почистил и перестроил, и Виола, символы вернулись, и я не потерял никакого кода.

Должно быть, он повредил файл проекта или что-то в этом роде.

У меня была эта проблема. Я перепробовал все, перестроил все, перезапустил VS, перезапустил машину и т. Д. Я наконец понял это, и проблема очень раздражает. Выпадающий список отладки, который содержит «Отладка», «Выпуск», показывал «Отладка» все время, пока я устранял эту проблему. Однако похоже, что это была попытка выпустить. Когда для него уже установлено значение «Отладка», я открыл раскрывающееся меню, выбрал «Отладка», а затем начал снова, и символы были успешно загружены. И снова это после попытки перезагрузить компьютер и всего остального. И визуальная студия загружается с раскрывающимся списком по умолчанию «Отладка», но мне все равно нужно выбрать его из раскрывающегося списка. : @

Немного поздно, но я только что погуглил аналогичную проблему, и я пришел прямо сюда. Я использую VS2010 (c ++), и у меня была аналогичная проблема с ошибкой, видимой только в сборке Release. Мое исправление для загрузки символов заключалось в том, чтобы попросить VS2010 создать и загрузить их :-)

SolutionExplorer-> ProjectName - щелкните правой кнопкой мыши и выберите "Свойства". На странице свойств вверху подтвердите правильную конфигурацию и платформу, для которой вы собираетесь изменить свойства, для меня я хотел Release и x64. Откройте Linker-> Debugging, на панели свойств есть опция «Generate Debug Info» - измените это на «Yes». Символы перестройки и отладки генерируются и загружаются для отладки. Вы можете сделать это выборочно для каждого проекта в решении.

Надеюсь, это поможет.

[EDIT] Имейте в виду, что из-за оптимизации и возможного изменения порядка сборки кода, значения, которые не имеют смысла в некоторых ситуациях. [/ EDIT]

Была такая же проблема сегодня, попробовал все, что предлагалось здесь, но ничего не сработало. Мой модуль не отображался в окне Debug-> Modules, несмотря ни на что.

Однако, сдавшись, я обнаружил кое-что интересное: во время навигации по приложению некоторые модули начали загружаться «на лету» в окне «Модули». Я предполагаю, что код достиг разделов, в которых требовались эти модули, и Visual Studio сообразила и загрузила их.

Я считаю, что это своего рода оптимизация Visual Studio для загрузки модулей по запросу. На самом деле довольно умный, просто мне потребовалось некоторое разочаровывающее время, чтобы обнаружить это. По этой причине, если вы посмотрите на Debug-> Modules при запуске отладчика, некоторые из зависимых сборок не будут загружены - даже если вы на 100% уверены, что зависимость существует.

Надеюсь, это помогло другим в моей ситуации.

У меня была аналогичная проблема, когда я использовал configtransform в веб-проекте. Несмотря на то, что я установил свой configtransform так, чтобы он не удалял компиляцию debug = true, и включил определение константы DEBUG, я не смог заставить его генерировать символы отладки в определенном режиме компиляции.

Оказалось, что есть некоторые свойства, определяющие, генерировать ли отладочные символы в файле csproj. Выгрузите проект и найдите элемент PropertyGroup, соответствующий режиму компиляции.

Затем убедитесь, что у вас есть следующие свойства внутри PropertyGroup

И если это веб-сайт, который вы хотите опубликовать с помощью веб-развертывания, я полагаю, вам также понадобится следующий набор свойств.

Я просто столкнулся с этой проблемой.

Затем я начал отладку проекта, и символы загрузились правильно.

Если вы открываете код, созданный другим пользователем (например, учителем), убедитесь, что сценарий в файле .htm соответствует имени файла .js, то есть src="https://question-it.com/questions/4741932/scripts/Objects.js" , если имя вашего проекта / файла - Objects.js

Это решает проблему, и решение, похоже, теперь строится быстрее.

Я исправил это, я знаю, что это не лучшее решение, но оно сработало. Поскольку такое поведение было чрезвычайно странным, мне пришлось создать новое решение с нуля, затем создать все мои проекты / слои, а затем вручную скопировать все классы один за другим, убедившись, что я могу отлаживать каждый проект.

Просто так, мне потребовалось около 1,5 часов, но я, наконец, сделал это. Я знаю, я знаю, это вообще не похоже на решение, но у меня это сработало .

Идея остановки и перезапуска VS 2010 сработала для меня с той же проблемой. Однако мне пришлось открыть другое и не связанное с этим решение, закрыть его и снова открыть решение с проблемой символов отладки. Теперь все хорошо. Надеюсь это поможет.

Возможно, конфигурация решения пошла наперекосяк. Убедитесь, что вы используете отладку и что отладочная информация проверена для конфигурации

Обычно это означает, что сборка, которую вы пытаетесь отладить, устарела (ваш источник отличается от того, который использовался для создания сборки). Одна из проблем, с которыми я часто сталкиваюсь, заключается в том, что решение не было создано из-за ошибок, но вы не заметили и отладили последнюю успешную сборку. Убедитесь, что все проекты перестроены и успешны.

Я решил это следующим образом:

  • Перейдите на страницу свойств проекта.
  • Слева перейдите на вкладку Сборка .
  • Найдите / прокрутите вниз до «Создать сборку сериализации» .
  • Перед этим текстом есть кнопка "Дополнительно . " : нажмите ее.
  • Убедитесь, что у вас есть полная информация об отладке.
  • Нажмите ОК, и все готово.

Святая троица в таких случаях: перестроить все, перезагрузить VS, перезагрузить компьютер.

  • Восстановите все: убедитесь, что все обновлено. Если не работает:
  • Перезапустите студию: в некоторых случаях служба отладочных символов зависает и не обновляет загруженные символы вновь скомпилированными. В большинстве случаев перезапуск VS решит проблему. Если не:
  • Перезагрузите компьютер: грубая сила, но эффективно.

Кроме того, вы должны проверить, генерирует ли сборка отлаживаемую сборку.

Еще одна вещь, которую нужно проверить, просто для ясности: убедитесь, что у вас установлена ​​конфигурация «Отладка», а не «Выпуск». Вы можете отлаживать запускаемый проект в режиме «Release», но не в библиотеке классов, на которую указывает ссылка.

Возможно, это кому-то поможет .

Сегодня я вернулся к решению, начатому несколько недель назад, содержащему веб-службу и тестовое приложение. Оказывается, я опубликовал веб-службу на другом сервере (это то, что я забыл, но VS не очень хорошо запомнил), что означает, что при запуске тестовое приложение запускалось в режиме отладки, но выполняло вызовы удаленной веб-службе. .

Разверните ссылки на службы в проекте тестового приложения

Щелкните правой кнопкой мыши ссылку на веб-службу и выберите «Настроить ссылку на службу».

У меня есть большое решение в Visual Studio 2012, которое состоит из исполняемых файлов и проектов библиотеки классов. При отладке приложения точки останова в одном конкретном проекте библиотеки классов не попадают.

Я посмотрел на Отладка> Windows> Модули окно для проверки статуса символы для этого проекта и он говорит "не удается найти или открыть файл PDB".
Он также говорит "нет" под "пользователь Код"

Я попробовал несколько инструментов, чтобы проверить, действительно ли pdb и dll совпадают, и используя chkmatch Я видел, что GUID в запускаемой dll и pdb в папке obj не совпадают.

таким образом, оказывается, что, хотя dll и pdb в папке obj проекта совпадают, dll, которая фактически копировалась в целевую папку приложения событием после сборки, была старой dll из предыдущей сборки.

событие после сборки был запуск до того, как этот конкретный проект построил или, по крайней мере, закончил строительство и копировал в существующей dll из корзины, которая впоследствии была перезаписана продолжающейся сборкой.

Я решил проблему, отредактировав зависимости проекта для решения и убедившись, что проект с событием после сборки зависит от проекта, который не загружался, и теперь pdb загружается во время отладки.

Я просто удалил папку bin и obj из папки проекта запуска и перестроил решение.

для меня я просто удалил проект из IIS и создал его снова, и он отлично работает

для меня это помогло использовать инструмент chkmatch, а затем просто закрыть и открыть visual studio, очистить и перестроить. Теперь мой pdb также загружается. Вы можете убедиться, что это так, как указал Nanhydrin, из Debug -> Windows -> Modules - это представление доступно только во время отладки.

в моем случае более старая версия ссылочной dll была в моем GAC. Очистил его, и это сработало.

Я вошел в свойства проектов, вкладку компиляции, расширенные параметры компиляции. и снимите флажок Enable Optimizations флажок

Deselect Enable Optimizations

напоминание: поместите проект в конфигурацию "Debug". для таких, как я, которые забывают и чувствуют себя глупо.

удалил проект из решения и добавил его снова в решение, которое работало для меня. :)

немного поздно на вечеринку здесь-на всякий случай это полезно.

У нас есть несколько отдельных веб-сайтов (в разных решениях в Visual Studio). При начальной загрузке одного из сайтов мы делали звонок на другой сайт, который возвращал изображение.

оба этих сайта ссылались на общую DLL, но во время работы на одном сайте не поняли, что другой сайт был оставлен в сборке "Release" - после загрузки сайта оскорбительная DLL была перестроена, но без символов.

престижность Nanhydrin как для упоминания окна отладки модулей (очень полезно), Так и для того, чтобы поставить меня на правильный путь с событием сборки post.

ответ из другого потока, который работал для меня:https://stackoverflow.com/a/28476665/5969306
- В Visual Studio: свойства проекта - > сборка - > кнопка Дополнительно - > сведения об отладке раскрывающегося списка и убедитесь, что значение не "нет".

У меня просто была эта проблема, и я думал, что поставлю свое исправление здесь, так как это моя помощь другим (может быть, даже себе снова?!) в будущем.

убедитесь, что при подключении к процессу на удаленном сервере значение "Attach to" равно

автоматическое определение типа кода для отладки

чтобы сделать это, когда квалификатор сервера был предоставлен и список процессов виден, нажмите кнопку "Выбрать" рядом с "Присоединить к" входу.

Image 1

Затем выберите "Автоматически определить тип кода для отладки"и OK из экрана, затем прикрепите.

Image 2


По крайней мере, для меня это решило проблему.

в моем случае была галочка на Enable Just My Code на Tools>>Options>>Debugging>>General .

Я снял его, и он работал.


У меня была такая строка в моем окне отладки:

символы для модуля ' MyModule.dll файлы не были загружены.

Я удалил опцию "оптимизировать код" в свойствах проекта -> Build. И ошибка исчезла.

эта проблема может быть из-за неправильная ссылка на DLL использован в проекте.

удалить параметр obj и bin папки в текущем проекте и build снова.


Я пробовал следующее:

  • Убедитесь, что конфигурация отладки, флаг отладки и полная отладочная информация установлены для всех сборок.
  • Удалите все папки bin и obj и все файлы DLL, связанные с проектом, со всей моей машины.
  • Воссоздайте проекты, из-за которых возникла проблема, с нуля.
  • Перезагружать.

У меня в решении два проекта Windows Forms. Один из них загружает отладочную информацию, другой - нет. Оба они относятся к сборке, для которой я пытаюсь получить отладочную информацию точно так же в файле проекта. Есть идеи?

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

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

Убедитесь, что вы не в выпуске, а в отладке.

Сначала попробуйте перестроить свой проект, щелкнув проект правой кнопкой мыши> Перестроить. Если это не сработает, попробуйте очистить проект (щелкните проект правой кнопкой мыши> очистить)

Если это не сработало, проверьте следующее:

  1. Щелкните правой кнопкой мыши по вашему проект
  2. Выбрать [Свойства]
  3. Выберите [Сборка] вкладка
  4. Убедиться [Определить константу DEBUG] а также [Определить константу TRACE] проверены
  5. Убедиться [Оптимизировать код] не отмечен
  6. Щелкните значок [Дополнительно] кнопка внизу вкладки Build
  7. Убедись в том, что [Отладочная информация:] установлен на [полный]
  8. Нажмите [OK] и перестроить проект ;-)

(шаг 6 генерирует файлы .pdb, это символы отладки)

Просто попробуйте что-то простое - возможно, вы уже это пробовали. Щелкните правой кнопкой мыши Решение в обозревателе решений, щелкните "чистое решение" - удаляет все скомпилированные и временные файлы, связанные с решением..

Выполните перестройку решения и попробуйте снова отладить.

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

Выбранный ответ привел меня к решению моей проблемы. Но мне нужно сделать еще несколько вещей:


И в проекте Properties> Build:





> > , чтобы увидеть, какие модули загружаются, я в правильном направлении.

Просто следуйте инструкциям ниже:

  • Идти к Отлаживать из строки меню
  • Нажмите на Присоединить к процессу
  • Рядом с Прикрепить к вариант, нажмите на Выбрать кнопка
  • В Выберите тип кода окно появится
  • Теперь выберите вариант Автоматически определять тип кода для отладки и нажмите кнопку ОК.


Иногда, даже если это дает вам эту ошибку, все равно попадает, поэтому просто игнорируйте ошибку. Это происходит довольно часто в из .


Решением было снять этот флажок.


Просто проверьте, находится ли ваше решение в режиме выпуска.

  • 1 потребовалось почти 4 часа, чтобы выяснить эту проблему. Спасибо

Попробуйте запустить Visual Studio от имени администратора в Windows.

  • 1 Мне пришлось запустить msvsmon от имени администратора на удаленной машине.
  • Это не решение, которому люди должны следовать. Если это решит проблему, вам следует сосредоточиться на том, зачем вам нужны права администратора, чтобы VS могла читать содержимое файла .pdb вашего проекта.
  • @Jazimov Я не согласен. Хотя мне бы хотелось потратить время на изучение этого вопроса, в моем случае это решило мою проблему и позволило мне продолжить работу, как, я уверен, и для других. Если вы хотите изучить это и улучшить этот ответ, не стесняйтесь, это то, для чего он нужен.
  • Для ясности: я понимаю, что проблема с Visual Studio решена, я не об этом спорил. Я оспариваю рекомендацию о том, что другие соглашаются запускать IDE как то решение, а не простое а решение. Если запуск IDE от имени администратора устраняет проблему, эту информацию следует использовать для устранения реальной основной причины, чтобы IDE не требовала прав администратора для правильной работы.

В моем случае я пытаюсь отлаживать в режиме relase. Как только я переведу его в режим отладки. Это работает

  • 1 Где это должно быть?
  • 10 Это то же самое, что и ответ juFo - Project> Properties> Build> Advanced> Debug Info> Full (или pdb-only)
  • Послушайте Джереми Томпсена. Это устранило проблему для меня.

Отладка Опции Общие Снимите флажок ""

Это сработало для меня.

  • 1 Похоже, это может быть параметр по умолчанию, который стоит проверить, обновляете ли VS до более новой версии (как это случилось со мной).

Проверьте раскрывающийся список . Убедитесь, что вы выбрали , а не .

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

Даже публикация того же решения не решила проблему.

Затем я вернулся к тому, что я обычно делаю, чтобы решить (обмануть эту упрямую Visual Studio)

Все, что я сделал, - это сознательно изменил код и опубликовал решение. Затем я отменил изменение и снова опубликовал.

Вуаля [PDB файлы избавляют от злых духов] .. Не умное решение, но это сработало . - |

Только веб-приложения (IIS Express):

  • Щелкните правой кнопкой мыши IIS Express Tray и закройте IIS.
  • Чистое решение


Убедитесь, что следующие два параметра одинаковы в Visual Studio:

Мои все настроены на "Любой процессор", поэтому x64


На панели главного меню выберите Тест, Настройки теста, Архитектура процессора по умолчанию

Мой был установлен на X86


Обновить:

За Visual Studio 2019 меню немного перемещено:


Возможно, Visual Studio не может скопировать и ЗАМЕНИТЬ существующие файлы (.dll и .pdb) рядом с .exe, поскольку там есть другие. Поэтому, если я удалил вручную, VS может создать новый рядом с .exe.

Я думаю, что основная причина проблемы в том, что Visual Studio использует во время выполнения другой файл, а не файл из проекта, с остановкой.

Может этот ответ кому-то поможет!

Свойства проекта (затем выберите конфигурацию сборки)> Вкладка Сборка> Дополнительно . > Информация об отладке (раскрывающийся список)

  • я сделал pdb_only, также очистил и перезапустил браузер

Вместо того, чтобы делать все это просто

решение, которое устранит проблему

  • Работал для меня в Microsoft Visual Studio 2013 в разделе: Файл> Закрыть решение, затем файл> Открыть решение (должно быть предварительно загружено в той же папке, в которой оно было). Точки останова мгновенно изменились с желтого на красный. Так что спасибо.
  • 1 Могу ли я проголосовать 10 тысяч раз? Хуже всего то, что я думаю, что искал это в Google уже 10 раз, и каждый раз - одна и та же глупая ошибка. Может быть, Microsoft сможет намекнуть на это пользователю?

Это заняло у меня некоторое время, я попробовал другие варианты выше, и по какой-то странной причине отладка перестала работать.

Инструмент -> Параметры -> Отладка -> Общие -> (снимите отметку) "Требовать, чтобы исходные файлы точно соответствовали исходной версии"

Точка останова не будет удалена. Символы не загружены для этого документ.


Я пробовал очистить и перестроить, но это не имеет значения.

Я также пробовал искать в Debug- > Windows- > Modules. Если я щелкнул правой кнопкой мыши по модулю, я пытаюсь отлаживать и нажимать информацию о загрузке Symbol, он отображает список мест, в которых он пытался загрузить символы. Первый в списке правильный и файл существует, но рядом с ним есть эта ошибка

C:\path\to\my\symbol\Debug\MyProject.pdb: Неизвестный обработчик символов для ошибка


спросил(а) 2011-12-01T15:50:00+04:00 9 лет, 11 месяцев назад

Перейдите в "Свойства" для веб-сайта, который будет использовать эту DLL для отладки, а затем выберите "Исходный код" в разделе "Отладчики" ниже:

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

ответил(а) 2017-04-06T01:11:00+03:00 4 года, 7 месяцев назад

Прежде всего, возможно, что некоторые из ваших модулей не будут отображаться в окне модуля, потому что некоторые из них могут быть загружены динамически (только по мере необходимости).

Возможно, вы захотите проверить свойства проекта в разделе "Линкера" > "Отладка" > "Создать файл базы данных программы" и "Создать информацию отладки". Убедитесь, что эти два установлены правильно.

Кроме того, проверьте, установлен ли в C/С++ > General > Debug Information Format значение Program Database for Edit And Continue (/ZI) или что-то подобное.

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

Наконец, проверьте, настроены ли все ваши проекты и файлы в вашем решении как Debug, а не Release или что-то еще, поскольку никакие символы не будут сгенерированы (следовательно, никто не будет загружен) для этого проекта/файла.

Читайте также: