Подтвердить что ты не робот

Почему без удаленной отладки нет символов?

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

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

  • Добавьте общую папку на вашем компьютере-разработчике, который указывает на расположение файлов .pdb.
  • Настроить переменную среды, называемую _NT_SYMBOL_PATH на удаленном компьютере, которая указывает на общую папку на вашей машине разработчика

Удаленный отладчик теперь будет искать вашу машину для символов. Не нужно копировать их для каждой сборки.

Смотрите MS Video здесь.

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

Удачи!

Ответ 3

  • В меню "Инструменты" в Visual Studio 2010 выберите "Параметры".
  • В диалоговом окне "Параметры" откройте "Отладка" node и нажмите "Генералы".
  • Проверить Показать все настройки, если необходимо, и найти Включить только мой код (Только для управляемых)
  • Снимите флажок и нажмите OK

После подключения удаленного процесса

Ответ 4

Удаленная отладка в .NET не будет работать, если вы не поместите файлы .PDB в один и тот же каталог, где существует отлаживаемый код.

Если VS по-прежнему не может найти источник для отладки, отлаженный код и источник проекта VS не одна и та же версия. Решение заключается в перестройке и повторном развертывании проекта.

Ответ 5

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

Литература:

Если это сломано...

Ответ 6

1800 Информация правильная, вам нужно выполнить удаленную отладку с помощью проверки подлинности Windows, чтобы отлаживать управляемый код, иначе вы не сможете загрузить символы для управляемых сборок. Получение этого для работы с аутентификацией довольно сложно, так как для этого требуются локальные учетные записи на обеих машинах с одинаковыми паролями. Этот вопрос и все ответы весьма полезны для получения этой работы.

Удаленная отладка в Visual Studio (VS2008), приложение Windows Forms

Ответ 7

У меня были те же проблемы. Нашел ответ на форумах msdn Я просто скопирую/вставлю правильный ответ здесь:

Убедитесь, что вы используете правильная версия msvsmon.exe!!!     Вот и все! У меня была та же проблема, в то время как удаленная отладка С# выражение. Я использовал x64 msvsmon.exe, потому что сервер работает Windows-Server 2008 64-бит, но приложение было написано для x86, поэтому я должен был запустить версию x86 msvsmon.exe, чтобы избавиться от эта досадная ошибка.     Больше ничего не нужно. Просто запустите версию msvsmon.exe, чтобы соответствует целевой архитектуре вашей заявки ^ _ ^

Ответ 8

В то время как приведенные выше ответы верны, я столкнулся с примерами, когда PDB, которые были построены с отлаживаемой сборкой, были на месте в удаленном месте и не собирались. Если вы используете TFS или другой механизм сборки, который поддерживает публикацию ваших символов отладки, я бы рекомендовал это сделать. Затем в параметрах Visual Studio > Отладкa > Символы вы можете добавить это местоположение в параметр "Серверы символов" для загрузки этих символов в любое время, когда они будут найдены.

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

Ответ 9

Мне удалось получить эту работу, перейдя на вкладку "Свойства проекта", "Компилировать" и установив путь вывода сборки на мой удаленный компьютер, например \ MyServer\MyShare\myappdir

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

Ответ 10

Я также столкнулся с этим при использовании настраиваемой конфигурации сборки. (DEV вместо Debug)

Чтобы исправить это, я изменил настройку "Свойства проекта" → "Создать → Вывод → " и обеспечил настройку "Выход → " Отладка информации " полностью или pdb- только. Конфигурация по умолчанию Release обычно имеет значение none.

lUI8t.png

Ответ 11

Перейдите в раздел Инструменты- > Параметры- > Отладка- > Символы и добавьте путь к файлам .pdb для исполняемого файла. Путь на моей локальной машине работал нормально.

Ответ 12

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

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

Примечание. Служба и символы не обязательно должны находиться в том же каталоге, что и для меня, с помощью службы 2k12 +.net 4.5 windows.

для деталей:

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

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

Поиск символьных (.pdb) файлов


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

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

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

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

Привет!

Ответ 13

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

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