Depurar o programa C++ no Linux
escrevi um programa C++ simples como este:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello.";
return 0;
}
Agora quero depurar. Então, qual será o comando para que o meu controlo vá para todas as linhas?
18
5 answers
Pode usar gdb
para isto:
$ gdb hello
Isto vai começar gdb
e perguntar-te o que fazer a seguir. O comando next
executa uma linha de código e pára na linha seguinte.
Encontrei um tutorial básico {[[12]}do GDB que pode ser útil.
27
Author: Greg Hewgill, 2011-11-04 14:44:37
Não se esqueça de compilar o seu código fonte usando a opção-G.
Assim:
Isto vai criar um ficheiro executável a. out.
Você será capaz de depurar o seu exe a. out usando o comando gdb ./a.out
.
Outra ferramenta que você pode usar é DDD basicamente uma interface gráfica para o gdb.
17
Author: dario minonne, 2008-12-16 08:04:27
Eu sempre pensei emacs forneceu um front-end fácil de usar para o gdb...
Por exemplo
- % g++ hello.cc -g-O hello
- emacs hello.cc
- [ In Emacs ] Escape-x gdb
- o Emacs dirá " execute o gdb (como este): gdb ".
- Adicione o seu nome binário ("Olá"). (Ex. "Run gdb (like this): gdb hello".)
- vá para o seu hello.cc buffer.
- Use o comando Emacs 'gud-break' para definir um ponto de paragem no gdb da sua hello.cc buffer. (Normally bound to "C-x space".) Vai ao teu buffer.
- escreva "executar" na linha de comandos (gdb).
- utilizar [n ] próximo ou [S ] Passo. Quer [C ] Continuar. [BT ] Backtrace também é útil. Repara no que acontece ao pequeno triângulo na coluna mais à esquerda da tua hello.cc buffer.
6
Author: Mr.Ree, 2008-12-16 10:42:15
Se quiser algum depurador amigável, poderá usar o Kdbg, que é basicamente uma interface gdb para o KDE. Talvez não tão poderoso como o ddd, mas mais fácil de começar.
3
Author: Marc, 2008-12-16 08:07:45