| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <title>Tutorial Depurando Projetos C/C++</TITLE> |
| <meta name="DESCRIPTION" content="Short tutorial that demonstrates debugging C/C++ |
| projects in NetBeans IDE"> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > |
| <meta name="author" content="Susan Morgan"><!--Optional tag--> |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> |
| </head> |
| <body> |
| <a name="top"></a> |
| |
| <h1>Tutorial Depurando Projetos C/C++</h1> |
| <!-- START INTRO --> |
| <div class="articledate" style="margin-left: 0px;font-style:italic;"> |
| <p><em>Contribuição de <i>Ann Rice</i> e mantida por <i>Susan Morgan</i> <br> Julho de 2012</em> [Número da versão: V7.2-1]</div> |
| |
| <p>O breve tutorial a seguir o guia por algumas funcionalidades de depuração de um projeto C ou C++ no NetBeans IDE IDE 7.2. |
| </p> |
| <!-- END INTRO --> |
| <h3>Conteúdo</h3> |
| <img alt="O conteúdo desta página se aplica ao NetBeans IDE 7.2" class="stamp" src="../../../images_www/articles/72/netbeans-stamp.gif" title="O conteúdo desta página se aplica ao NetBeans IDE 7.2"> |
| <table class="b-none vatop " cellpadding="0" cellspacing="0"> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#requirements" title="Requisitos">Requisitos</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#project" title="Criando o Projeto de Amostra">Criando o Projeto de Amostra</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#breakpoints" title="Criando Pontos de Interrupção">Criando Pontos de Interrupção</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#starting" title="Iniciando uma Sessão de Depuração">Iniciando uma Sessão de Depuração</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#inspecting" title="Inspecionando o Estado da Aplicação">Inspecionando o Estado da Aplicação</a></td> |
| </tr> |
| </table> |
| |
| <h2><a NAME="requirements"></a>Requisitos</h2> |
| <p><b>Para seguir este tutorial, são necessários os recursos e o software a seguir.</b> </p> |
| |
| <table> |
| <tbody> |
| <tr> |
| <th class="tblheader" scope="col">Software ou Recurso</th> |
| <th class="tblheader" scope="col">Versão Necessária</th> |
| </tr> |
| <tr> |
| <td class="tbltd1">NetBeans IDE</td> |
| <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">versão 7.2 com módulo de plug-in C/C++ do NetBeans</a></td> |
| </tr> |
| <tr> |
| <td class="tbltd1">JDK (Java Developer Kit)</td> |
| <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">versão 7</a></td> |
| </tr> |
| </table> |
| <p>Consulte as <a href="../../../community/releases/72/install.html">Instruções de Instalação do NetBeans IDE 7.2</a> e <a HREF="../../../community/releases/72/cpp-setup-instructions.html"> Configurando e Instalando o NetBeans para C/C++/Fortran</a> para obter informações sobre como fazer download e instalar o software necessário. |
| </p> |
| <h2><a name="project"></a>Criando o Projeto de Amostra</h2> |
| <p>O NetBeans IDE com C/C++ usa o depurador <tt>gdb</tt> e fornece inúmeras funcionalidades para a depuração dos seus projetos. Para explorar essas funcionalidades, usaremos o projeto <tt>Quote</tt>. Caso você ainda não tenha criado esse projeto, faça o seguinte: |
| <ol> |
| <li>Escolha Arquivo > Novo Projeto.</li> |
| <li>No assistente do projeto, expanda a categoria Amostras e selecione a subcategoria C/C++.</li> |
| <li>Selecione a subcategoria Aplicações, em seguida, selecione o projeto <tt>Quote</tt>. Clique em Próximo e, em seguida, Finalizar. |
| </li> |
| </ol> |
| <h2><a name="breakpoints"></a>Criando Pontos de Interrupção</h2> |
| <p> |
| Você pode criar e manipular pontos de interrupção em seu código a qualquer momento sem iniciar uma sessão de depuração. |
| </p> |
| <div class="indent"> |
| <h3><a name="LineBreakpoint"></a>Criando e Removendo um Ponto de Interrupção de Linha</h3> |
| <ol> |
| <li> |
| No projeto <tt>Quote_1</tt>, abra o arquivo <tt>quote.cc</tt>. |
| </li> |
| <li>Defina um ponto de interrupção clicando na margem esquerda da janela Editor de código-fonte ao lado da linha 161 (<tt>response = readChar("Digite o tipo do módulo do disco: (S para discos únicos, R para RAID; Q - sair)", 'S');</tt>). A linha é realçada em vermelho para indicar que o ponto de interrupção está definido.<br> <img alt="Tela da janela Editor de Código-fonte" src="../../../images_www/articles/72/cnd/debugging/line_breakpoint1.png"> |
| </li> |
| <li>Você pode remover o ponto de interrupção, clicando no ícone na margem esquerda. |
| </li> |
| <li>Escolha Janela > Depuração > Pontos de Interrupção para abrir a janela Pontos de interrupção. Os pontos de interrupção de linha são listados na janela.<br> <img alt="Tela da janela de Pontos de Interrupção" src="../../../images_www/articles/72/cnd/debugging/line_breakpoint2.png"> |
| </li> |
| </ol> |
| <h3><a name="FunctionBreakpoint"></a>Criando um Ponto de Interrupção da Função</h3> |
| <ol> |
| <li>Escolha Depurar > Novo Ponto de Interrupção (Ctrl+Shift+f8) para abrir a caixa de diálogo Novo Ponto de Interrupção. |
| </li> |
| <li> |
| Na lista drop-down Tipo de Ponto de Interrupção, defina o tipo como Função. |
| </li> |
| <li>Digite o nome da função <tt>Customer::GetDiscount</tt> no campo de texto Nome da Função. Clique em OK. <br> <img alt="Tela da caixa de diálogo Novo Ponto de Interrupção" src="../../../images_www/articles/72/cnd/debugging/function_breakpoint1.png"> |
| </li> |
| <li>Seu ponto de interrupção da função é definido e adicionado à lista na janela Pontos de Interrupção.<br> <img alt="Tela da janela de Pontos de Interrupção" src="../../../images_www/articles/72/cnd/debugging/function_breakpoint2.png"> |
| </li> |
| </ol> |
| </div> |
| |
| <h2><a name="starting"></a>Iniciando uma Sessão de Depuração</h2> |
| <p>Quando você inicia uma sessão de depuração, o IDE inicia o depurador <tt>gbd</tt>, em seguida, executa a aplicação dentro do depurador. O IDE abre automaticamente as janelas do depurador e imprime a saída do depurador na janela Saída.</p><ol> |
| <li>Inicie uma sessão de depuração do projeto <tt>Quote_1</tt>, clicando com o botão direito do mouse no nó do projeto e escolhendo Depurar. O depurador é iniciado e a aplicação é executada. |
| </li> |
| <li>Abra a janela Sessões escolhendo Janela > Depuração > Sessões. A sessão de depuração é mostrada nessa janela. |
| </li> |
| </ol> |
| <h2><a name="inspecting"></a>Inspecionando o Estado da Aplicação</h2> |
| <ol> |
| <li>A aplicação <tt>Quote_1</tt> solicita a entrada na janela de Saída.</li> |
| <li>Insira um nome de cliente depois do prompt "Insira o nome do cliente:". |
| </li> |
| <li>A aplicação interrompe o ponto de interrupção que você definiu anteriormente. 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. <br> <img alt="Tela da guia Pontos de Interrupção" src="../../../images_www/articles/72/cnd/debugging/function_breakpoint3.png"> |
| </li> |
| <li>Abrir a janela Pilha de Chamada escolhendo Janela >Depuração >Pilha de Chamada. A pilha de chamadas mostra três quadros.<br> <img alt="Tela da guia da Pilha de Chamada" src="../../../images_www/articles/72/cnd/debugging/call_stack.png"> |
| </li> |
| <li>Abra a janela Variáveis e observe que uma variável é exibida. Clique no botão superior na coluna esquerda na guia Variáveis para mostrar Autos ao invés de variáveis locais.</li> |
| <li>Clique no ícones Expandir para expandir a estrutura. <br> <img alt="Tela da guia Variáveis" src="../../../images_www/articles/72/cnd/debugging/local_variables1.png"> |
| </li> |
| <li>Clique no botão Continuar na barra de ferramentas. A função <tt>GetDiscount</tt> é executada, imprimindo o desconto do cliente na janela E/S Externa. Em seguida, é solicitado que você faça a entrada. |
| </li> |
| <li>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 <tt>quote.cc</tt>, a seta verde do contador de programa aparece sobre o ícone do ponto de interrupção indicando a linha em que o programa é parado. <br><br> <img alt="Tela do Editor de Código-fonte" src="../../../images_www/articles/72/cnd/debugging/line_breakpoint3.png"> <br><br> |
| </li> |
| <li> |
| Clique na guia Variáveis e observe a longa lista de variáveis. <br> <img alt="Tela da guia Variáveis Locais" src="../../../images_www/articles/72/cnd/debugging/local_variables2.png"> |
| </li> |
| <li>Clique na guia Pilha de Chamadas e observe que há somente um quadro na pilha. |
| </li> |
| <li>Escolha Janela > Depuração > Registros. A janela Registros se abre, exibindo o conteúdo atual dos registros. <br> <img alt="Tela da janela Registros" src="../../../images_www/articles/72/cnd/debugging/registers.png"> <br> |
| </li> |
| <li>Escolha Janela > Depuração > Desmontar. A janela Desmontar é aberta, exibindo as instruções de montagem do arquivo de código-fonte atual. <br> <img alt="Tela da janela Desmontador" src="../../../images_www/articles/72/cnd/debugging/disassembly.png"> <br> |
| </li> |
| <li> |
| Clique no botão Continuar na barra de ferramentas e continue inserindo entradas em resposta aos prompts na janela Saída até que o programa seja concluído. 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 com o botão direito do mouse na sessão na guia Sessões e escolher Finalizar ou Depurar > Finalizar Sessão do Depurador. |
| </li> |
| </ol> |
| |
| <div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=Feedback:%20Debugging%20C/C++%20Projects%20-%20NetBeans%20IDE%207.2%20Tutorial">Enviar Feedback neste Tutorial</a></div> |
| |
| </body> |
| </html> |