Depuración de una aplicación de alto nivel
Importante
Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).
Asegúrese de que el dispositivo esté conectado al equipo mediante USB. En el menú Establecer elemento de inicio, seleccione Aplicación de Azure Sphere (HLCore) donde aplicación de Azure Sphere es el nombre de la aplicación de alto nivel actual o presione F5.
Si se le solicita que compile el proyecto, seleccione Sí. Visual Studio compila la aplicación, crea un paquete de imágenes, lo transfiere localmente a la placa y lo inicia en modo de depuración. Por transferencia local se entiende que la aplicación se entrega directamente desde el equipo mediante una conexión con cable, en lugar de entregarse mediante la nube.
Tenga en cuenta el identificador de imagen del paquete de imagen en la salida>Ver>salida de: Salida de: Salida de compilación. Usará el identificador de imagen más adelante en Tutorial: Creación de una implementación en la nube.
De forma predeterminada, la ventana Salida muestra la salida de salida del dispositivo. Para ver los mensajes del depurador, seleccione Depurar desde el menú desplegable Mostrar resultados desde:. También puede inspeccionar el desensamblado del programa, los registros o la memoria a través del menú Depurar>Windows.
Después, puede usar el depurador de Visual Studio para establecer puntos de interrupción, pausar, pasar paso a paso, iniciar, reiniciar o detener la aplicación.
Mientras se detiene en un punto de interrupción en el código fuente de C, puede abrir una ventana Desensamblado que muestre la dirección actual, el ensamblador mnemonic para el comando actual e información como los registros implicados o el comando de código fuente que se está ejecutando.
Para abrir la ventana Desensamblado :
- Asegúrese de que el archivo fuente de código C que contiene el punto de interrupción esté abierto en Visual Studio.
- Seleccione Depurar desensamblaje>de Windows>o presione Alt+8.
Presione F5 para compilar y depurar el proyecto. Si el proyecto no se ha compilado previamente o si se han cambiado los archivos y se requiere la regeneración, Visual Studio Code compilará el proyecto antes de que se inicie la depuración.
Espere varios segundos para que Visual Studio Code compile la aplicación, cree un paquete de imágenes, impleméntelo en la placa e inícielo en modo de depuración. Verá las actualizaciones de estado en el panel Salida a lo largo del proceso.
En primer lugar, CMake determina si la aplicación debe compilarse. Si es así, el foco cambia a la ventana de salida, que muestra la salida de CMake/Build.
A continuación, el panel Salida muestra el resultado a medida que se implementa el paquete de imágenes en el dispositivo. Por último, la consola de depuración recibe el foco y muestra la salida del depurador.
Use el depurador de Visual Studio Code para establecer puntos de interrupción, pausar, recorrer paso a paso por instrucciones, reiniciar o detener la aplicación.
Mientras se detiene en un punto de interrupción en el código fuente de C, puede abrir una vista Desensamblar que muestre la dirección actual, los datos hexadecimales sin procesar, el mnemónico ensamblador para el comando actual e información como los registros implicados o el comando de código fuente que se está ejecutando.
Para abrir la vista Desensamblar:
- Asegúrese de que el archivo fuente de código C que contiene el punto de interrupción esté abierto en un editor de Visual Studio Code.
- Haga clic con el botón derecho en la ventana del editor y seleccione Abrir vista desensamblado o seleccione Ver>paleta>de comandos Abrir vista Desensamblado.
Para depurar la aplicación, deténgala y, a continuación, reiníciela con la depuración:
azsphere device app stop --component-id <ComponentId>
azsphere device app start --debug-mode --component-id <ComponentId>
Debería ver lo siguiente:
<ComponentID>
App state : debugging
GDB port : 2345
Output port : 2342
Core : High-level
Command completed successfully in 00:00:00.9121174.
Abra un símbolo del sistema y use cualquier cliente de terminal Windows para establecer una conexión TCP sin procesar o Telnet para leer el flujo de salida del proceso. Especifique 192.168.35.2 como la dirección IP y 2342 como el puerto.
Abra una interfaz de línea de comandos mediante PowerShell, el símbolo del sistema de Windows o el shell de comandos de Linux. Inicie el depurador de línea de comandos de gdb :
Símbolo del sistema de Windows
"C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb.exe" IntercoreComms_HighLevelApp.out
Windows PowerShell
& "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb.exe" IntercoreComms_HighLevelApp.out
Nota:
El SDK de Azure Sphere se incluye con varias sysroots para que las aplicaciones puedan tener como destino diferentes conjuntos de API, como se describe en Versión del entorno de ejecución de aplicaciones, sysroots y API beta. Los sysroot se instalan en la carpeta de instalación del SDK de Azure Sphere en Sysroots.
Establezca el destino de depuración remota en la dirección IP 192.168.35.2 en el puerto 2345:
target remote 192.168.35.2:2345
Ejecute los comandos gdb que elija. Por ejemplo:
break main
c
Los comandos
break
yc
establecen un punto de interrupción después de la entrada a main() y, a continuación, continúan la ejecución después del punto de interrupción, respectivamente. Se encuentran disponibles varias fuentes de documentación para gdb.