Tutorial Depurando projetos C/C++
Contribuição e manutenção realizadas por Ann Rice
Setembro de 2008[Número da versão: V6.5-1]
O tutorial breve seguinte guia você por alguns dos recursos de depuração de um projeto C ou C++ no NetBeans IDE 6.5.
Conteúdo
Requisitos
Para seguir este tutorial, você precisa dos seguintes recursos e softwares.
| NetBeans IDE |
versão 6.5 com NetBeans C/C++ pack |
| Java Developer Kit (JDK) |
versão 6 ou 5 |
Plataforma Windows:
Compiladores GNU C e C++, make, gdb
|
www.cygwin.com
www.mingw.org
|
Plataformas Solaris:
Compiladores GNU C e C++
Compiladores Sun C e C++
make e gmake do Solaris
gdb
|
3.4.3
5.9 (Sun Studio versão 12)
3.80
6.6 ou 6.8
|
Plataformas Linux:
Red Hat Fedora Core:
gcc e g++
gdb
GNU make
Ubuntu:
gcc e g++
gdb
GNU make
|
4.1.2
6.6 ou 6.8
3.81
4.1.2
6.6 ou 6.8
3.81
|
Plataformas Mac OS X:
gcc e g++
gdb
GNU make
Pacote Xcode |
4.0.1
6.3.50
3.80
6.5
|
Consulte Instruções de instalação do NetBeans IDE 6.5 e Instalando e configurando suporte a C/C++ para obter informações sobre como baixar e instalar o software necessário.
Criando o projeto de amostra
O NetBeans C/C++ Pack 6.5 usa o depurador gdb e fornece inúmeros recursos para a depuração dos seus projetos. Para explorar esses recursos, usaremos o projeto Quote. Caso você ainda não tenha criado esse projeto, faça o seguinte:
- Escolha Arquivo > Novo projeto.
- No assistente do projeto, expanda a categoria Amostras e selecione a subcategoria C/C++.
- Selecione a subcategoria Aplicativo, em seguida, selecione o projeto Quote. Clique em Próximo e em Terminar.
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
-
No projeto Quote_1, abra o arquivo quote.cc.
- Defina um ponto de interrupção, clicando na margem esquerda da janela Editor de código-fonte ao lado da linha 173 (response = readChar("Enter disk module type: (S for single disks, R for RAID; Q - exit)", 'S');). A linha é realçada em vermelho para indicar que o ponto de interrupção está definido.
- Você poderia remover o ponto de interrupção, clicando no ícone na margem esquerda.
- 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.
Criando um ponto de interrupção de função
- Escolha Depurar > Novo ponto de interrupção (Ctrl+Shift+f8) para abrir a caixa de diálogo Novo ponto de interrupção.
-
Na lista suspensa Tipo de ponto de interrupção, defina o tipo como Função.
- Digite o nome da função Customer::GetDiscount no campo de texto Nome da função. Clique em OK.
- Seu ponto de interrupção de função é definido e adicionado à lista na janela Pontos de interrupção.
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 o aplicativo dentro do depurador. O IDE abre automaticamente as janelas do depurador e imprime a saída do depurador na janela Saída.
- Inicie uma sessão de depuração do projeto Quote_1, clicando com o botão direito do mouse no nó do projeto e escolhendo Depurar. O depurador se inicie e o aplicativo é executado, e as janelas Variáveis locais, Inspeções e Pilha de chamadas se abrem.
- Abra a janela Sessões escolhendo Janela > Depuração > Sessões. A sessão de depuração é mostrada nessa janela.
Inspecionando o estado do aplicativo
- O aplicativo Quote_1 solicita a entrada na janela E/S externa.
- Indique um nome de cliente depois do aviso "Indique o nome do cliente:".
- O aplicativo pára no ponto de interrupção que você definiu anteriormente. Abra a janela Pontos de interrupção, escolhendo Janela > Depuração > > Pontos de interrupção. A janela lista os dois pontos de interrupção que você definiu anteriormente. O ponto de interrupção da função é exibido em negrito.
- Clique na aba Pilha de chamadas. A pilha de chamadas mostra três quadros.
- Clique na aba Variáveis locais e observe que uma variável é exibida. Clique nos ícones de expansão (quadros pequenos com sinais de adição) para expandir a estrutura.
- Clique no botão Continuar. A função GetDiscount é executada, imprimindo o desconto do cliente na janela E/S externa. Em seguida, você é solicitado a fazer a entrada.
- Indique a entrada em resposta aos avisos. O programa pára 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.
-
Clique na aba Variáveis locais e observe a longa lista de variáveis locais.
- Clique na aba Pilha de chamadas e observe que há somente um quadro na pilha.
- Escolha Janela > Depuração > Threads. A janela Threads se abre mostrando dois threads. O thread atual é exibido em negrito.
- Escolha Janela > Depuração > Registros. A janela Registros se abre, exibindo o conteúdo atual dos registros.
- Escolha Janela > Depuração > Desmontador. A janela Desmontador se abre, exibindo as instruções de montagem do arquivo de código-fonte atual.
-
Clique no botão Continuar e continue indicando a entrada em resposta aos avisos na janela E/S externa até que o programa seja concluído. Quando você indica Q para sair do programa, a janela E/S externa fecha e a 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 aba Sessões e escolher Terminar ou Depurar > Terminar sessão do depurador.