Depurar um aplicativo de alto nível
Importante
Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).
Verifique se seu dispositivo está conectado ao seu PC por USB. No menu Definir item de inicialização, selecione Aplicativo do Azure Sphere (HLCore), em que o Aplicativo do Azure Sphere é o nome do aplicativo de alto nível atual, ou pressione F5.
Caso precise compilar o projeto, selecione Sim. O Visual Studio compila o aplicativo, cria um pacote de imagem, executa sideloads para a placa e a inicia no modo de depuração. Sideload significa que o aplicativo é entregue diretamente do PC por uma conexão com fio, em vez de entregue por meio da nuvem.
Observe a ID da imagem do pacote de imagens na saída Mostrar saída de exibição>>de: Saída de build. Você usará a ID da imagem posteriormente no Tutorial: Criar uma implantação de nuvem.
Por padrão, a janela Saída mostra a saída da Saída do dispositivo. Para ver as mensagens do depurador, selecione Depurar no menu suspenso Mostrar saída de:. Inspecione também a desmontagem do programa, os registros ou a memória por meio do menu Depuração>Windows.
Em seguida, você pode usar o depurador do Visual Studio para definir pontos de interrupção, pausar, passar por cima, entrar, reiniciar ou parar o aplicativo.
Enquanto estiver parado em um ponto de interrupção no código-fonte C, você pode abrir uma janela Desmontagem que mostra o endereço atual, o mnemônico do assembler para o comando atual e informações como os registros envolvidos ou o comando do código-fonte que está sendo executado.
Para abrir a janela Desmontagem :
- Verifique se o arquivo de origem do código C que contém o ponto de interrupção está aberto no Visual Studio.
- Selecione Depurar>desmontagem do Windows>ou pressione Alt+8.
Pressione F5 para compilar e depurar o projeto. Se o projeto não tiver sido criado anteriormente ou se os arquivos tiverem sido alterados e a recompilação for necessária, o Visual Studio Code compilará o projeto antes do início da depuração.
Aguarde alguns segundos para que o Visual Studio Code compile o aplicativo, crie um pacote de imagens, implante-o na placa e inicie-o no modo de depuração. Você verá atualizações de status no painel Saída ao longo do caminho.
Primeiro, o CMake determina se o aplicativo precisa ser criado. Nesse caso, o foco muda para a janela de saída, que exibe a saída do CMake/Build.
Em seguida, o painel Saída mostra o resultado à medida que o pacote de imagens é implantado no dispositivo. Por fim, o Console de Depuração recebe o foco e mostra a saída do depurador.
Use o depurador do Visual Studio Code para definir pontos de interrupção, pausar, passar, entrar, reiniciar ou parar o aplicativo.
Enquanto estiver parado em um ponto de interrupção no código-fonte C, você pode abrir uma exibição de desmontagem que mostra o endereço atual, os dados hexadecimais brutos, o mnemônico do assembler para o comando atual e informações como os registros envolvidos ou o comando do código-fonte que está sendo executado.
Para abrir a vista Desmontagem:
- Verifique se o arquivo de origem do código C que contém o ponto de interrupção está aberto em um editor do Visual Studio Code.
- Clique com o botão direito do mouse na janela do editor e selecione Abrir vista de desmontagem ou selecione Exibir>paleta>de comandos Abrir vista de desmontagem.
Para depurar o aplicativo, interrompa-o e reinicie-o com a depuração:
azsphere device app stop --component-id <ComponentId>
azsphere device app start --debug-mode --component-id <ComponentId>
Você deverá ver:
<ComponentID>
App state : debugging
GDB port : 2345
Output port : 2342
Core : High-level
Command completed successfully in 00:00:00.9121174.
Abra um prompt de comando e use qualquer cliente de terminal do Windows para estabelecer uma conexão Telnet ou TCP bruta para ler o fluxo de saída do processo. Especifica 192.168.35.2 como endereço IP e 2342 como a porta.
Abra uma interface de linha de comando usando o PowerShell, o Prompt de Comando do Windows ou o shell de comando do Linux. Inicie o depurador de linha de comando gdb :
Prompt de Comando do 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
Observação
O SDK do Azure Sphere é fornecido com vários sysroots para que os aplicativos possam direcionar diferentes conjuntos de APIs, conforme descrito em Versão do runtime do aplicativo, sysroots e APIs beta. Os sysroots são instalados na pasta de instalação do SDK do Azure Sphere em Sysroots.
Defina o destino de depuração remota para o endereço IP 192.168.35.2 na porta 2345:
target remote 192.168.35.2:2345
Execute qualquer comando gdb que você escolher. Por exemplo:
break main
c
Os comandos
break
ec
definem um ponto de interrupção na entrada para main() e, em seguida, continuam a execução após o ponto de interrupção, respectivamente. Várias fontes de documentação estão disponíveis para gdb.