La mejor técnica para iniciar una sesión de depuración remota en modo de usuario de Windbg.

StackOverflow https://stackoverflow.com/questions/52855

Pregunta

¿Cuál es su técnica favorita para iniciar una sesión de depuración remota en modo de usuario de windbg?¿Por qué prefieres esta técnica a otras técnicas?(pros contras)

Hay al menos cuatro formas diferentes de realizar la depuración remota en modo de usuario utilizando windbg, como se documenta en la sección "Depuración remota" del archivo de ayuda de las herramientas de depuración para Windows.

  1. ejecute la aplicación en el destino y luego conéctela desde el host windbg
  2. haga que el host windbg use remoto.exe para iniciar la aplicación en el objetivo
  3. haga que el host "cliente inteligente" windbg inicie la aplicación en el destino a través de un servidor de procesos que se ejecuta en el destino
  4. ejecute una instancia de windbg en la máquina de destino usando la opción "-server" para iniciar automáticamente un servidor, luego conéctese al servidor desde una segunda máquina.
¿Fue útil?

Solución

No existe "la mejor" solución.Cada una de las posibilidades tiene ventajas y desventajas y es bueno entenderlas todas.Depende de varios factores como:

  • donde estan ubicados los simbolos
  • qué PC tiene acceso a Internet para descargar los símbolos del sistema operativo
  • ¿Qué cantidad de datos puede copiar al servidor (los clientes suelen aceptar mejor si se trata de un solo archivo Exe)?
  • ¿Cuál es el ancho de banda entre el cliente y el servidor?
  • ¿Necesita otros comandos que solo CDB/WinDbg, p.e.acceso a CMD, luego considere remoto.exe
  • que está disponible en el lado del servidor, un experto en depuración al que se le pueden decir fácilmente muchos comandos crípticos o un usuario normal que apenas sabe cómo iniciar un símbolo del sistema
  • Ambos lados están en una red privada, por lo que necesita un servidor "intermediario" para poder acceder entre sí (o reenvío de puertos como alternativa, algo que los informáticos no quieren y puede llevar días configurarlo). arriba)

De esas 4 opciones, no olvides que los clientes muchas veces quieren ver exactamente lo que haces, por lo que requieren una sesión RDP, Teamviewer o similar.Eso es algo que entienden.

Otros consejos

La opción 1 es mi favorita porque es la más sencilla.Puedo iniciar la aplicación de la manera normal sin preocuparme de que WinDbg configure el directorio de trabajo correcto, pase cualquier argumento de línea de comando, etc.

¡Afortunadamente no me he encontrado con ningún caso en el que esto no haya funcionado!

Tiendo a usar la opción 4 (-server) porque es la única que no "explota" cuando ingresa al depurador del kernel el tiempo suficiente para que se agote el tiempo de espera de la conexión TCP.Pero esto es más complejo y no plenamente satisfactorio.Entonces estoy buscando "mejores prácticas".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top