In questo post non mi soffermerò su come eseguire il debug remoto ma sull'errore più comune che può capitare eseguendolo.
Generalmente presi dalla disperazione stiamo usando il debugger in no authentication mode e finalmente vediamo l'elenco dei processi che stanno girando sulla macchina da debuggare; agganciamo quello che ci serve ed ecco che appena proviamo a mettere un break point appare il fatidico: "No symbols have been loaded for this document". Evitate di perdere tempo a provare a caricare i simboli a mano; la soluzione seppur poco documentata è semplice: dovete ricreare un ambiente di debug remoto che vi permetta di utilizzare il transport di tipo Default. Spiego passo passo
Debuggare codice managed su una macchina remota:
- Controllare di avere pubblicato anche il file pdb che contiene i simboli di debug insieme al file che contiene il processo da debuggare (basta compilare in modalità debug ed i simboli saranno generati automaticamente).
- Mettere se possibile la macchina remota a dominio
- Inserire il proprio utente tra gli utenti della macchina remota nel gruppo administrator
- Eseguire remote debug monitor sulla macchina remota e, cliccando su options, settare i permessi necessari alla connessione dell'utente remoto che effettuerà il debug
- Dalla macchina di dev, una volta cliccato Debug --> Attach process, inserire l'indirizzo del server di debug remoto che generalmente è nel seguente formato DOMINIO\UTENTE@NOMEPC
- Selezionare il processo che vogliamo debuggare ed iniziare il debug
Se selezionerete No Authentication potrete solo debuggare il codice usando il decompiler e a meno che non vi piaccia decodificarvi il binario non la vedo una buona idea!!