// 
//     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+]
