Partilhar via


Depurar um aplicativo de alto nível

Importante

Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) 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).

  1. Certifique-se de que o dispositivo está ligado ao PC por USB. No menu Definir item de inicialização, selecione Azure Sphere App (HLCore), onde Azure Sphere App é o nome do seu aplicativo de alto nível atual ou pressione F5.

    Botão Depurador GDB remoto

  2. Se você for solicitado a criar o projeto, selecione Sim. O Visual Studio compila o aplicativo, cria um pacote de imagem, faz sideload no quadro e o inicia no modo de depuração. Sideload significa que o aplicativo é entregue diretamente do PC através de uma conexão com fio, em vez de entregue através da nuvem.

    Observe o ID da imagem do pacote de imagem na saída View>Output>Show de: Build output. Você usará o ID da imagem posteriormente em Tutorial: Criar uma implantação na nuvem.

  3. 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: . Você também pode inspecionar a desmontagem do programa, registros ou memória através do menu Depurar>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 assembler para o comando atual e informações como os registradores envolvidos ou o comando do código-fonte que está sendo executado.

Para abrir a janela Desmontagem :

  1. Verifique se o arquivo de origem do código C que contém o ponto de interrupção está aberto no Visual Studio.
  2. Selecione Depurar>Desmontagem do Windows>ou pressione Alt+8.
  1. Pressione F5 para criar e depurar o projeto. Se o projeto não tiver sido criado anteriormente ou se os arquivos tiverem sido alterados e a reconstrução for necessária, o Visual Studio Code criará o projeto antes do início da depuração.

  2. Aguarde alguns segundos para que o Visual Studio Code crie o aplicativo, crie um pacote de imagem, implante-o no quadro 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. Em caso afirmativo, 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 imagem é implantado no dispositivo. Finalmente, o Debug Console recebe o foco e mostra a saída do depurador.

Use o depurador de código do Visual Studio para definir pontos de interrupção, pausar, ultrapassar, entrar, reiniciar ou parar o aplicativo.

Enquanto estiver parado em um ponto de interrupção no código-fonte C, você pode abrir uma visualização Desmontagem que mostra o endereço atual, dados hexadecimais brutos, o mnemônico 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:

  1. Verifique se o arquivo de origem do código C que contém o ponto de interrupção está aberto em um editor de código do Visual Studio.
  2. Clique com o botão direito do rato na janela do editor e selecione Abrir Vista de Desmontagem ou selecione Ver>Paleta>de Comandos Abrir Vista de Desmontagem.

Para depurar o aplicativo, pare-o e reinicie-o com depuração:

azsphere device app stop --component-id <ComponentId>
azsphere device app start --debug-mode --component-id <ComponentId>

Deverá ver:

<ComponentID>
App state   : debugging
GDB port    : 2345
Output port : 2342
Core        : High-level
Command completed successfully in 00:00:00.9121174.
  1. Abra um prompt de comando e use qualquer cliente de terminal do Windows para estabelecer uma conexão Telnet ou TCP bruto para ler o fluxo de saída do processo. Especifique 192.168.35.2 como o endereço IP e 2342 como a porta.

  2. Abra uma interface de linha de comando usando PowerShell, Prompt de Comando do Windows ou shell de comando do Linux. Inicie o depurador de linha de comando gdb :

    Linha de Comandos 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
    

    Nota

    O SDK do Azure Sphere é fornecido com várias sysroots para que os aplicativos possam direcionar diferentes conjuntos de APIs, conforme descrito em Versão do tempo de execução do aplicativo, sysroots e APIs Beta. Os sysroots são instalados na pasta de instalação do SDK do Azure Sphere em Sysroots.

  3. 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
    
  4. Execute qualquer comando gdb que você escolher. Por exemplo:

    break main
    
    c
    

    Os break comandos e c 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. Inúmeras fontes de documentação estão disponíveis para o gdb.