Domanda

Qual è la tua tecnica preferita per avviare una sessione di debug remoto in modalità utente windbg?Perché preferisci questa tecnica rispetto ad altre tecniche?(Pro e contro)

Esistono almeno quattro modi diversi per eseguire il debug remoto in modalità utente utilizzando windbg, come documentato nella sezione "Debug remoto" degli strumenti di debug per il file della guida di Windows.

  1. esegui l'app sulla destinazione, quindi collegala dall'host windbg
  2. chiedere all'host windbg di utilizzare remote.exe per avviare l'app sulla destinazione
  3. fare in modo che l'host "smart client" windbg avvii l'app sulla destinazione tramite un server di processo in esecuzione sulla destinazione
  4. esegui un'istanza windbg sul computer di destinazione utilizzando l'opzione "-server" per avviare automaticamente un server, quindi connettiti al server da un secondo computer.
È stato utile?

Soluzione

Non esiste la soluzione "migliore".Ognuna delle possibilità presenta vantaggi e svantaggi ed è bene comprenderli tutti.Dipende da diversi fattori come:

  • dove si trovano i simboli
  • quale PC ha accesso a Internet per scaricare i simboli del sistema operativo
  • quale quantità di dati puoi copiare sul server (i client spesso accettano meglio se si tratta di un singolo Exe)
  • qual è la larghezza di banda tra client e server
  • hai bisogno di altri comandi che siano solo CDB/WinDbg, ad es.accedere a CMD, quindi considerare remote.exe
  • chi è disponibile sul lato server, un esperto di debug a cui puoi facilmente dire molti comandi criptici o un utente normale che sa a malapena come avviare un prompt dei comandi
  • sono entrambi i lati di una rete privata, quindi è necessario un server "uomo nel mezzo" per poter accedere l'un l'altro (o il port forwarding come alternativa, cosa che i ragazzi IT non vogliono e potrebbero volerci giorni per impostarlo su)

Tra queste 4 opzioni, non dimenticare che i clienti spesso vogliono vedere esattamente cosa fai, quindi richiedono una sessione RDP, Teamviewer o simili.E' qualcosa che capiscono.

Altri suggerimenti

L'opzione 1 è la mia preferita perché è la più semplice.Posso avviare l'app in modo normale senza preoccuparmi di fare in modo che WinDbg imposti la directory di lavoro corretta, passi eventuali argomenti della riga di comando, ecc.

Fortunatamente non mi sono imbattuto in nessun caso in cui questo non ha funzionato!

Tendo a utilizzare l'opzione 4 (-server) perché è l'unica che non "si apre" quando si entra nel debugger del kernel abbastanza a lungo da far scadere la connessione TCP.Ma questo è più complesso e non del tutto soddisfacente.Quindi sto cercando le "migliori pratiche".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top