| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Tutorial Depurando Projetos C/C++ |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Tutorial Depurando Projetos C/C++ - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Tutorial Depurando Projetos C/C++ |
| |
| |
| Março de 2013 [Número da revisão: V8.0-1] |
| |
| O breve tutorial a seguir o guia por algumas funcionalidades de depuração de um projeto C ou C++ no NetBeans IDE. |
| |
| |
| == Requisitos |
| |
| *Para seguir este tutorial, são necessários os recursos e o software a seguir.* |
| |
| |=== |
| |Software ou Recurso |Versão Necessária |
| |
| |NetBeans IDE |link:https://netbeans.org/downloads/index.html[+versão 7.4 ou 8.0 com o módulo de plug-in C/C++ do NetBeans+] |
| |
| |JDK (Java Developer Kit) |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+versão 7 ou 8+] |
| |=== |
| |
| Consulte as link:../../../community/releases/80/install.html[+Instruções de instalação do NetBeans IDE+] e link:../../../community/releases/80/cpp-setup-instructions.html[+Configurando o NetBeans IDE para C/C++/Fortran+] para obter informações sobre como fazer download e instalar o software necessário. |
| |
| |
| == Criando o Projeto de Amostra |
| |
| O NetBeans IDE com C/C++ usa o depurador ``gdb`` e fornece inúmeras funcionalidades para a depuração dos seus projetos. Para explorar essas funcionalidades, você usará o projeto ``Quote`` . Caso você ainda não tenha criado esse projeto, faça o seguinte: |
| |
| 1. Escolha Arquivo > Novo Projeto. |
| 2. No assistente do projeto, expanda a categoria Amostras e selecione a subcategoria C/C++. |
| 3. Selecione a subcategoria Aplicações, em seguida, selecione o projeto ``Quote`` . Clique em Próximo e, em seguida, Finalizar. |
| |
| |
| == Criando Pontos de Interrupção |
| |
| Você pode criar e manipular pontos de interrupção em seu código a qualquer momento sem iniciar uma sessão de depuração. |
| |
| |
| === Criando e Removendo um Ponto de Interrupção de Linha |
| |
| 1. No projeto ``Quote_1`` , abra o arquivo ``quote.cc`` . |
| 2. Defina um ponto de interrupção clicando na margem esquerda da janela Editor de código-fonte ao lado da linha 171 ( ``response = readChar("Digite o tipo do módulo do disco: (S para discos únicos, R para RAID; Q - sair)", 'S');`` ). A linha é realçada em vermelho para indicar que o ponto de interrupção está definido. |
| |
| image::images/line_breakpoint1.png[] |
| |
| [start=3] |
| . Você pode remover o ponto de interrupção, clicando no ícone na margem esquerda. |
| |
| [start=4] |
| . Escolha Janela > Depuração > Pontos de Interrupção para abrir a janela Pontos de interrupção. Seu ponto de interrupção de linha é listado no nó C/C++. |
| |
| image::images/line_breakpoint2.png[] |
| |
| [start=5] |
| . Expanda o nó C/C++ para ver seu ponto de interrupção. |
| |
| image::images/line_breakpoint2_expand.png[] |
| |
| |
| === Criando um Ponto de Interrupção da Função |
| |
| 1. Clique no botão Criar Novo Ponto de Interrupção na margem esquerda da janela Pontos de Interrupção ou escolha Depurar > Novo Ponto de Interrupção (Ctrl+Shift+F8) para abrir a caixa de diálogo Novo Ponto de Interrupção. |
| 2. Na lista Tipo de Depurador, selecione Nativo. |
| 3. Na lista Tipo de Ponto de Interrupção, selecione Função. |
| 4. Digite o nome da função ``Customer::GetDiscount`` no campo de texto Nome da Função. Clique em OK. |
| |
| image::images/function_breakpoint1.png[] |
| |
| [start=5] |
| . Seu ponto de interrupção da função é definido e adicionado à lista na janela Pontos de Interrupção. |
| |
| image::images/function_breakpoint2.png[] |
| |
| [start=6] |
| . Clique no botão Selecionar Grupos de Ponto de Interrupção na margem esquerda para organizar os pontos de interrupção em diferentes grupos e selecione Tipo. |
| |
| image::images/group_breakpoint_type.png[] |
| |
| [start=7] |
| . Expanda os grupos de Arquivo:Linha e Função para exibir seus pontos de interrupção. |
| |
| image::images/breakpoint_types.png[] |
| |
| |
| == Iniciando uma Sessão de Depuração |
| |
| Quando você inicia uma sessão de depuração, o IDE inicia o depurador ``gbd`` , em seguida, executa a aplicação dentro do depurador. O IDE abre automaticamente as janelas do depurador e a barra do depurador e imprime a saída do depurador na janela de Saída. |
| |
| 1. Inicie uma sessão de depuração para o projeto ``Quote_1`` clicando no botão Depurar Projeto image:images/debugbutton.png[] ou escolhendo Depurar > Depurar Projeto. |
| O depurador é iniciado e a aplicação é executada. A barra de ferramentas do depurador é exibida. |
| |
| image::images/debugger_toolbar.png[] |
| |
| [start=2] |
| . Abra a janela Sessões escolhendo Janela > Depuração > Sessões. |
| A sessão de depuração é mostrada nessa janela. |
| |
| |
| == Inspecionando o Estado da Aplicação |
| |
| 1. A aplicação ``Quote_1`` solicita a entrada na janela de Saída (Depuração). |
| 2. Insira um nome de cliente depois do prompt "Insira o nome do cliente:". |
| |
| A aplicação é interrompida no ponto final da função Customer::GetDiscount definida anteriormente e o arquivo customer.cc é aberto no editor, na linha em que a função é chamada. A janela Pontos de Interrupção lista os dois pontos de interrupção que você definiu anteriormente. A seta do contador de programas verde será exibida na parte superior do ícone do ponto de interrupção da função. |
| |
| image::images/function_breakpoint3.png[] |
| |
| |
| [start=3] |
| . Clique na guia da janela Pilha de Chamadas ou selecione Janela > Depurando > Pilha de Chamadas. A pilha de chamadas mostra três quadros. |
| |
| image::images/call_stack.png[] |
| |
| [start=4] |
| . Abra a janela Variáveis e observe que uma variável é exibida. |
| |
| [start=5] |
| . Clique no ícones Expandir para expandir a estrutura. |
| |
| image::images/local_variables1.png[] |
| |
| [start=6] |
| . Clique no botão Continuar na barra de ferramentas. |
| A função ``GetDiscount`` é executada, imprimindo o desconto do cliente na janela de Saída (Depuração). Em seguida, é solicitado que você faça a entrada. |
| |
| [start=7] |
| . Insira a entrada em resposta aos prompts. |
| |
| O programa para no próximo ponto de interrupção, o ponto de interrupção de linha definido anteriormente. No arquivo ``quote.cc`` , a seta verde do contador de programa aparece sobre o ícone do ponto de interrupção indicando a linha em que o programa é parado. |
| |
| image::images/line_breakpoint3.png[] |
| |
| |
| [start=8] |
| . Clique na guia Variáveis e observe a longa lista de variáveis. |
| |
| image::images/local_variables2.png[] |
| |
| [start=9] |
| . Clique na guia Pilha de Chamadas e observe que há somente um quadro na pilha. |
| |
| [start=10] |
| . Escolha Janela > Depuração > Registros. |
| A janela Registros se abre, exibindo o conteúdo atual dos registros. |
| |
| image::images/registers.png[] |
| |
| [start=11] |
| . Escolha Janela > Depuração > Desmontar. |
| A janela Desmontar é aberta, exibindo as instruções de montagem do arquivo de código-fonte atual. |
| |
| image::images/disassembly.png[] |
| |
| [start=12] |
| . Clique no botão Continuar na barra de ferramentas e continue inserindo entradas em resposta aos prompts na janela de Saída até que o programa seja concluído. |
| |
| [start=13] |
| . Quando você pressiona Enter para sair do programa, sua sessão de depuração termina. Para terminar a sessão de depuração antes que a execução do programa seja concluída, você pode clicar no botão Finalizar Sessão do Depurador na barra de ferramentas ou escolher Depurar > Finalizar Sessão do Depurador. |
| |
| |
| == Consulte Também |
| |
| Consulte a link:https://netbeans.org/kb/trails/cnd.html[+Trilha do Aprendizado C/C+++] para obter mais artigos sobre o desenvolvimento com C/C++/Fortran no NetBeans IDE. |
| |
| link:mailto:users@cnd.netbeans.org?subject=Feedback:%20Debugging%20C/C++%20Projects%20-%20NetBeans%20IDE%207.4%20Tutorial[+Enviar Feedback neste Tutorial+] |