служба удаленного отладчика x86 на x64
-
09-06-2019 - |
Вопрос
Можно ли установить удаленный отладчик x86 в качестве службы на 64-разрядную машину?Мне нужно подключить отладчик к управляемому коду в процессе сеанса 0.Процесс выполняется 32-битным, но устанавливаемая служба отладчика является 64-битной и не будет подключаться к 32-битному процессу.
Я попытался создать Службу с помощью команды SC, и мне удалось запустить службу, и я убедился, что она запущена в процессах диспетчера задач.Однако, когда я попытался подключиться к нему с помощью Visual Studio, он сказал, что монитор удаленного отладчика не включен.Когда я остановил службу x86 и запустил службу x64, и она смогла найти монитор, но все равно выдала сообщение об ошибке.
Вот ошибка, когда я пытаюсь использовать удаленный отладчик:Не удается подключиться к процессу.64-разрядная версия монитора удаленной отладки Visual Studio (MSVSMON.EXE) не может выполнять отладку 32-разрядных процессов или 32-разрядных дампов.Пожалуйста, используйте вместо этого 32-разрядную версию.
Вот ошибка, когда я пытаюсь подключиться локально:Подключение к процессу в другом сеансе сервера терминалов на этом компьютере не поддерживается.Попробуйте выполнить удаленную отладку на компьютере и запустить монитор удаленной отладки Microsoft Visual Studio в сеансе процесса.
Если я попытаюсь запустить 32-разрядный удаленный отладчик как приложение, это не сработает, потому что удаленный отладчик запущен в моем сеансе, а не в сеансе 0.
Решение
Это работает на моем компьютере (TM) после установки rdbgsetup_x64.exe и прохождения мастера настройки:
sc stop msvsmon90
sc config msvsmon90 binPath= "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe /service msvsmon90"
sc start msvsmon90
Другие советы
У нас возникла такая же проблема при попытке удаленной отладки веб-сайта, который работает как 32-разрядный внутри 64-разрядного IIS.
Вы также можете сделать это:
- Остановите службу отладки по умолчанию (которая будет x64, поскольку установщик будет продуман и настроен для запуска).
- Перейдите в папку меню "Пуск удаленного отладчика
" и запустите службу отладки x86
.Игнорируйте предупреждение о
32-битный / 64-битный. - Откройте окно Сервис-> Параметры в окне приложения
удаленный отладчик и выполните
обратите внимание на значение в поле "Сервер
Текстовое поле "Имя". - Теперь вы можете подключить к нему свою Visual Studio
, скопировав "Имя сервера"
значение в текстовом поле "Уточняющий" / со списком в диалоговом окне "Прикрепить к процессу"
из Visual Studio.
В связи с этим, существует также низкоуровневая ошибка с проверкой подлинности Kerberos, если вы подключаетесь из Windows 2008/7 / Vista к компьютеру 2003, о которой сообщается MS (а затем закрывается как "внешний") через Connect here: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx ?Идентификатор обратной связи=508455
Я не пробовал этого, но в любом случае вот предложение:
Попробуйте установить службу удаленного отладчика x86 вручную.
sc create "Remote Debugger" binpath= "C:\use\short\filename\in\the\path\x86\msvsmon.exe /service msvsmon90"
Две заметки:
- Вам нужно будет использовать короткие имена файлов в пути к msvsmon.exe к , чтобы не заключать путь в кавычки (поскольку вся команда должна быть заключена в кавычки)
- после символа "binpath=" должен быть пробел (и никакого пробела перед символом '=').Тот, кто написал анализатор командной строки для команды sc , должен быть проклят.
Затем вы можете использовать апплет панели управления services.msc, чтобы запустить его с нужными учетными данными.
Вероятно, вам придется остановить или, возможно, даже удалить существующую службу удаленного отладчика x64.
Я могу подтвердить, что то, что вы хотите сделать, действительно сработает.Я часто подключаю свою 32-разрядную xp worstation к 64-разрядному серверу win2003 с помощью удаленного отладчика VS2008.
Работал у меня без установки дополнительного программного обеспечения.Я просто скопировал C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
папку на виртуальной машине и запустил msvsmon.exe
из самого x86
папка.И мой гость, и хозяин x64
.
1) Установите версию x64.Это также устанавливает отладчик x86, но не создает ярлык.
2) Вы можете найти исполняемый файл для отладки процесса x86 здесь...C:\Program Файлы\Microsoft Visual Studio 14.0\Common7\IDE emote Debugger\x86\msvsmon.exe
3) Если вы хотите, закрепите его на панели задач.
Иногда возникала эта ошибка, я просто закрываю visual Studio и открываю ее снова, все в порядке!
Очень странное поведение со стороны vs