Compartilhar via


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).

  1. 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.

    Botão do depurador GDB remoto

  2. 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.

  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:. 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 :

  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 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.

  2. 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:

  1. 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.
  2. 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.
  1. 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.

  2. 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.

  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 comandos break 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. Várias fontes de documentação estão disponíveis para gdb.