Servizio debugger remoto x86 su x64
-
09-06-2019 - |
Domanda
È possibile installare x86 Remote Debugger come servizio su un computer a 64 bit?Devo collegare un debugger al codice gestito in un processo Session 0.Il processo viene eseguito a 32 bit ma il servizio debugger che viene installato è a 64 bit e non si collegherà al processo a 32 bit.
Ho provato a creare il servizio utilizzando il comando SC e sono riuscito ad avviare il servizio e a verificare che fosse in esecuzione nei processi di Gestione attività.Tuttavia, quando ho provato a connettermi con Visual Studio, mi è stato detto che il monitor del debugger remoto non era abilitato.Quando ho interrotto il servizio x86 e avviato il servizio x64, sono riuscito a trovare il monitor, ma ho ricevuto ancora un errore.
Ecco l'errore quando provo a utilizzare il debugger remoto:Impossibile collegarsi al processo.La versione a 64 bit di Visual Studio Remote Debugging Monitor (MSVSMON.EXE) non può eseguire il debug di processi o dump a 32 bit.Utilizza invece la versione a 32 bit.
Ecco l'errore quando provo a collegarmi localmente:Il collegamento a un processo in una sessione del server terminal diversa non è supportato su questo computer.Prova il debug remoto sul computer ed esegui il monitoraggio del debug remoto di Microsoft Visual Studio nella sessione del processo.
Se provo a eseguire il debugger remoto a 32 bit come applicazione, non funzionerà collegando b/c il debugger remoto è in esecuzione nella mia sessione e non nella sessione 0.
Soluzione
Funziona sulla mia macchina(TM) dopo aver installato rdbgsetup_x64.exe e aver seguito la procedura guidata di configurazione:
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
Altri suggerimenti
Abbiamo riscontrato lo stesso problema durante il tentativo di eseguire il debug remoto di un sito Web in esecuzione a 32 bit all'interno di IIS a 64 bit.
Puoi anche fare questo:
- Ferma il servizio di debug predefinito (che sarà X64 poiché il programma di installazione sarà stato intelligente e configurato quello da eseguire).
- Passare alla cartella del menu di avvio del debugger remoto ed eseguire il servizio di debug X86.Ignora l'avvertimento su
32bit/64bit. - Apri la finestra Strumenti-> Opzioni della finestra App Debugger Remote e fai
nota del valore nel campo 'Server
Casella di testo "Nome". - Ora puoi allegare il tuo Visual Studio ad esso copiando il "nome del server"
Valuta nella casella di testo/combo "qualificatore" sulla finestra di dialogo Allega per elaborare
di VisualStudio.
In una nota correlata, esiste anche un bug di basso livello con l'autenticazione Kerberos se ci si collega da Windows 2008/7/Vista a una macchina del 2003, segnalato a MS (e quindi chiuso come "esterno") tramite Connetti qui: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=508455
Non l'ho provato, ma ecco comunque un suggerimento:
Prova a installare manualmente il servizio debugger remoto x86.
sc create "Remote Debugger" binpath= "C:\use\short\filename\in\the\path\x86\msvsmon.exe /service msvsmon90"
Due note:
- Dovrai utilizzare i filmati brevi nel percorso di msvsmon.exe per evitare di dover citare il percorso (poiché l'intero comando deve essere citato)
- Ci deve essere uno spazio dopo il "Binpath =" (e nessuno spazio prima del personaggio '=').Chiunque abbia scritto il parser della riga di comando per il comando SC dovrebbe essere maledetto.
Quindi puoi utilizzare l'applet del pannello di controllo services.msc per farlo funzionare con le credenziali giuste.
Probabilmente dovrai interrompere o forse addirittura eliminare il servizio debugger remoto x64 esistente.
Posso confermare che quello che vuoi fare funzionerà davvero.Collego spesso la mia configurazione XP a 32 bit a un server Win2003 x64 con debugger remoto VS2008.
Ha funzionato per me senza installare software aggiuntivo.Ho appena copiato il C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
cartella sulla VM e ho avviato il file msvsmon.exe
dal x86
cartella.Sia il mio ospite che il mio ospite lo sono x64
.
1) Installa la versione x64.Ciò installa anche il debugger x86 ma non crea un collegamento.
2) Puoi trovare l'eseguibile per il debug del processo x86 qui...C:\Programmi\Microsoft Visual Studio 14.0\Common7\IDE emote Debugger\x86\msvsmon.exe
3) Se lo desideri, aggiungilo alla barra delle applicazioni.
A volte si verificava questo errore, chiudo semplicemente Visual Studio e lo riapro, è tutto OK!
Comportamento molto strano da parte del vs