Почему при удаленной отладке не загружаются символы? - PullRequest
40 голосов
/ 30 сентября 2008

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

На машине b У меня есть папка со следующими файлами:

  • msvcr72.dll
  • 1008 * файл msvsmon.exe *
  • NatDbgDE.dll
  • NatDbgDEUI.dll
  • NatDbgEE.dll
  • NatDbgEEUI.dll

Если вы считаете, что некоторые файлы отсутствуют, не могли бы вы также описать, где они обычно находятся?

На следующем шаге я запустил msvsmon.exe и свою программу на компьютере b. На компьютере a я запустил Visual Studio 2008 и свое решение, в котором была написана программа. Затем я выбираю «Отладка - Присоединить к процессу». Я выбрал «Удаленный транспорт (только для собственной сети без аутентификации)». Я использовал правильный IP в качестве классификатора и выбрал правильный процесс (program.exe). Через некоторое время во всплывающем окне появилось следующее сообщение:

Необработанное исключение при 0x7c812a7b в program.exe: 0xE0434F4D: 0xe0434f4d

Я могу продолжить или прервать; При продолжении исключение возникает снова и снова и снова. Поэтому я нажал кнопку «разрыв», и появилось следующее сообщение:

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

Ответы [ 14 ]

1 голос
/ 14 февраля 2014

Я смог заставить это работать, перейдя на вкладку «Свойства проекта», «Компиляция» и установив выходной путь «Построение» для моего удаленного компьютера, например: \ MyServer \ MyShare \ myappdir

На вкладке отладки я установил флажок Использовать удаленный компьютер и установил на myserver

0 голосов
/ 21 февраля 2019

У меня была такая же проблема при удаленной отладке, она была решена с помощью следующих шагов в VS 2008:

  1. вы копируете локальный файл pdb вместе с вашими двоичными файлами
  2. Запустите ту же версию msvmon, для которой было создано ваше приложение. Если ваше приложение построено для архитектуры x86, вам нужно запустить версию msvmon для x86, даже если вы работаете на машине с x64. Когда вы попытаетесь запустить, он выдаст предупреждение, но он должен запуститься.
0 голосов
/ 22 января 2019

Я столкнулся с этой проблемой, и вышеуказанные решения не устранили ее для меня. В моем случае в моем решении VS2010 было много проектов. Проект, который я пытался удаленно отладить, был не установлен в моем решении VS2010 как StartUp Project, потому что мои скрипты make были не совсем правильными.

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

0 голосов
/ 24 апреля 2014

В соответствии с документацией для управляемых (я пытался подключиться к службе управляемых окон (встроенной в .net 4.5) на удаленной машине с Visual Studio 2012) символы должны быть на удаленной машине.

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

Примечание: служба и символы не обязательно должны находиться в том же каталоге, в котором она работает для меня с службой Windows 2k12 + .net 4.5.

для деталей:

http://msdn.microsoft.com/en-us/library/bt727f1t(v=vs.100).aspx

Выдержка из ссылки:

Расположение файлов символов (.pdb)


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

• Файлы символов для собственных приложений должны находиться на хост-компьютере Visual Studio.

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

• Файлы символов для смешанных (управляемых и собственных) приложений должны находиться как на хост-компьютере Visual Studio, так и на удаленном компьютере.

Привет!

...