Depuración de viajes en el tiempo - Solución de problemas
En esta sección se describe cómo solucionar problemas de seguimientos de viajes en el tiempo.
Problemas al intentar registrar un proceso
Obtengo un mensaje de error que indica "WinDbg debe ejecutarse con privilegios elevados para admitir la depuración de viajes de tiempo"
Como indica el mensaje, ejecutar el depurador con privilegios elevados es un requisito. Para ejecutar el depurador con privilegios elevados, haga clic con el botón derecho en el icono de WinDbg en el menú Inicio y, a continuación, seleccione Más>ejecutar como administrador.
He instalado WinDbg con una cuenta que no tiene privilegios de administrador y obtengo un mensaje de error que indica "WinDbg debe ejecutarse con privilegios elevados para admitir la depuración de viajes de tiempo".
Vuelva a instalar WinDbg mediante una cuenta que tenga privilegios de administrador y use esa cuenta al grabar en el depurador.
No puedo iniciar ni grabar una aplicación para UWP
Esto no se admite en este momento, pero puedes adjuntar y registrar una aplicación para UWP que ya se está ejecutando.
No puedo registrar un tipo de proceso inusual, ejecutándose en otra sesión, contexto de seguridad, credenciales...
En este momento, TTD solo registra procesos normales que se pueden iniciar normalmente desde una consola de comandos o haciendo clic en un archivo ejecutable o acceso directo en el Explorador de Windows.
No puedo registrar correctamente mi aplicación en mi equipo
Si se produce un error en la grabación de la aplicación, compruebe que puede grabar un proceso sencillo de Windows. Por ejemplo, "ping.exe" o "cmd.exe" son procesos simples que normalmente se pueden registrar.
No puedo grabar nada correctamente en mi ordenador
La grabación TTD es una tecnología invasiva, que puede interferir con otras tecnologías invasivas, como marcos de virtualización de aplicaciones, productos de administración de información, software de seguridad o productos antivirus.
Vea "Cosas para buscar" en Time Travel Debugging - Overview para obtener información sobre las incompatibilidades conocidas de TTD.
Estoy trazando una aplicación y ejecutando AppVerifier al mismo tiempo, y el rendimiento al reproducir el seguimiento es lento.
Debido a la forma en que AppVerifier usa memoria para comprobar la aplicación, la experiencia más adelante al reproducir el seguimiento puede ser notablemente peor que sin AppVerifier. Para mejorar el rendimiento, deshabilite AppVerifier al grabar la aplicación. Si esto no es posible, es posible que deba cerrar la ventana de pila de llamadas en WinDbg para mejorar el rendimiento.
Problemas con . Archivos de índice IDX
La depuración de un archivo de seguimiento sin un archivo de índice o con un archivo de índice dañado o incompleto es posible, pero no se recomienda. El archivo de índice es necesario para asegurarse de que los valores de memoria leídos del proceso depurado son más precisos y para aumentar la eficacia de todas las demás operaciones de depuración.
Use el !index -status
comando para examinar el estado de . Archivo de índice IDX asociado a . EJECUTE el archivo de seguimiento.
Si puede intentar volver a crear el archivo de índice mediante la ejecución !index -force
de .
Volver a crear . Archivo de índice IDX
Si sospecha y emite el archivo de índice, o !index -status
dice algo distinto de "Archivo de índice cargado", vuelva a crearlo.
Para ello, puede ejecutar !index -force
. Si se produce un error:
- Cierre el depurador.
- Elimine el archivo IDX existente; tendrá el mismo nombre que . EJECUTE el archivo de seguimiento y se encuentre en el mismo directorio que . RUN file is.
- Abra el seguimiento . EJECUTE el archivo en WinDbg. Esto ejecutará el
!index
comando para volver a crear el índice. - Use el
!index -status
comando para confirmar que el índice de seguimiento es funcional.
Asegúrese de que hay suficiente espacio para el archivo de índice en la misma ubicación donde reside el archivo de seguimiento. Dependiendo del contenido de la grabación, el archivo de índice puede ser significativamente mayor que el archivo de seguimiento, normalmente en el orden de dos veces mayor.
Problemas con Trace . RUN Files
Cuando hay problemas con el seguimiento . RUN, puede recibir mensajes de error como estos.
Replay and log are out of sync at fallback data. Packet type is incorrect "Packet Type"
Replay and log are out of sync at opaque data. Log had already reached the end
Replay exit thread event does not match up with logged event
Logged debug write values are out of sync with replay
En la mayoría de los casos, todos los mensajes de error indican que . El archivo de seguimiento RUN no se puede usar y debe volver a grabarse.
Volver a grabar la aplicación en modo de usuario
Si hay un problema específico con la grabación de una aplicación en modo de usuario, es posible que quieras intentar grabar una aplicación diferente en el mismo equipo o probar la misma aplicación en un equipo diferente. Es posible que quieras intentar grabar un uso diferente de la aplicación para ver si hay un problema específico con la grabación de determinadas partes de la aplicación.
Al depurar o crear el índice, veo mensajes sobre "Eventos de descarrilamiento".
Es posible que vea mensajes como este:
Derailment event MissingDataDerailment(7) on UTID 2, position 2A550B:108 with PC 0x7FFE5EEB4448 Request address: 0x600020, size: 32
TTD funciona ejecutando un emulador dentro del depurador, que ejecuta las instrucciones del proceso depurado para replicar el estado de ese proceso en cada posición de la grabación. Los descarrilamientos se producen cuando este emulador observa algún tipo de discrepancia entre el estado resultante y la información encontrada en el archivo de seguimiento. El error mencionado anteriormente, por ejemplo, hace referencia a una instrucción encontrada en la ubicación 0x7FFE5EEB4448, en la posición 2A550B:108 del seguimiento, que intentó leer cierta memoria alrededor de la ubicación 0x600020, que no existe en la grabación.
Los descarrilamientos suelen deberse a algún error en la grabadora, o a veces en el emulador, en algunas instrucciones grabadas más adelante en el seguimiento.
En la mayoría de los casos, este mensaje de error indica que . Run trace file will have a gap in the thread that derailed, starting at the point that it derailed, for some indeterminate number of instructions. Si el evento de interés que intenta depurar no se produjo durante esa brecha, el seguimiento puede ser utilizable. Si se produjo el evento de interés durante esa brecha, será necesario volver a registrar el seguimiento.