Почему мои символы (pdb) не загружаются с локального пути? - PullRequest
6 голосов
/ 17 сентября 2010

Я только что построил свое приложение, которое состоит из некоторого кода C ++ и C #, и установил его на другом компьютере. Когда я подключаю удаленный отладчик, я могу нормально отлаживать код C ++ и выполнять его. Однако, когда я пытаюсь отладить код C #, символы не загружаются. Я попытался вызвать панель модулей в Visual Studio и перешел к правильному файлу .pdb, но я просто получаю окно с сообщением, что оно не соответствует.

Я не могу понять, почему это происходит. Я использовал chkmatch отсюда: http://www.debuginfo.com/tools/chkmatch.html - он сообщает, что выбранные .exe и .pdb совпадают.

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

Я нашел этот связанный вопрос Файл символов MyFile.pdb не соответствует модулю Но это еще не все нативные символы. Мои нативные символы совпадают, это просто .net сборки, где символы не совпадают.

Приветствуются любые предложения по проверке.

Спасибо.

Обновление: Мне удалось получить символы для загрузки сейчас! Но ... решение состояло в том, чтобы скопировать файлы символов на удаленный компьютер и поместить их в ту же папку, что и файлы .exe и dll на удаленном компьютере. Visual Studio, похоже, отказывается загружать их с моей локальной машины. Если я щелкну правой кнопкой мыши на модуле в окне модулей и выберу «Информация о загрузке символов ...», это покажет пути, с которых он пытается загрузить символы, и содержит правильные локальные пути к тем местам, где находятся файлы pdb. машина. Я посмотрел на свойства безопасности и контроля доступа для pdbs и дал всем права доступа для всех.

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

Почему Visual Studio отказывается загружать символ с моего локального компьютера?

Ответы [ 2 ]

8 голосов
/ 20 сентября 2010

Вот и все.PDB для удаленной отладки .NET всегда загружаются с удаленного компьютера.В прошлом я, должно быть, копировал pdb на удаленную машину, но я забыл об этом.

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/26/visual-studio-remote-debugging-and-pdb-files.aspx


А-а.Я знаю, почему мне не нужно было некоторое время копировать pdb на удаленную машину.На удаленном компьютере было настроено сопоставление сетевых папок, которое сопоставляло диск с моим локальным компьютером ... и это использовалось для определения пути.У меня есть локальный диск S: где я храню весь свой исходный код, и оказалось, что это сетевое сопоставление, которое подключается к диску S: на удаленной машине, чтобы все работало.Я думаю, что я снова добавлю это отображение, и тогда я смогу отлаживать без необходимости вручную копировать pdb.

Это похоже на удобный трюк для удаленной отладки управляемого кода.Я просто не поняла, что делаю это!

3 голосов
/ 14 мая 2014

Имейте в виду, что это изменилось с Visual Studio 2013. С 2013 года PDB должны находиться на локальной машине.

http://msdn.microsoft.com/en-us/library/ms241613.aspx

...