O que é o debugger do GNU
Gdb é o debugger da fundação livre do software.
É uma comando-linha boa debugger, em que diversas ferramentas
foram construídas, including a modalidade do gdb de Emacs, o
debugger gráfico da exposição de dados
(DDD), e de-buggers internos nos diversos IDEs
gráfico. Nós cobrimos somente o gdb neste artigo.
Comece o gdb funcionando o progname do gdb. Gdb não
procurarará o TRAJETO que procura a lima executável. Gdb
carregará os símbolos executáveis e alertá-lo-á então para que o
que faça em seguida.
Há três maneiras inspecionar um processo com gdb:
-
Use o comando do funcionamento começar normalmente o
programa.
-
Use o comando do anexo começar inspecionar um processo
já-funcionando. Quando você une a um processo, o processo
estará parado.
-
Inspecione uma lima de núcleo existente para determinar o
estado do processo quando foi matado. Para inspecionar uma lima
de núcleo, comece o gdb com o progname do gdb do comando corefile.
Antes que você funcione um programa ou um anexo a um
programa já-funcionando, você pode ajustar limites de faturamento,
código de fonte da lista, e faz qualquer outra coisa que não envolve
necessariamente um processo running.
Gdb não requer que você datilografa nomes inteiros do
comando; r basta para funcionar, n para em seguida, s para a
etapa. Além disso, para repetir o comando o mais recente,
simplesmente retorno da batida. Isto faz único-pisar fácil.
Uma seleção curta de comandos úteis do gdb é incluída
aqui; o gdb inclui um manual em linha detalhado no formato do
GNU info (gdb do info do funcionamento) que explica todas as opções
dos gdb em detalhe em um formato tutorial. Programar com
software do GNU contem um tutorial detalhado bom em usar gdb. Gdb
inclui também a ajuda em linha extensiva disponível dentro do gdb;
alcance-a com o comando da ajuda. A ajuda específica em
cada comando está disponível com commandname da ajuda ou tópico da
ajuda.
Justo como o escudo comanda, comandos do gdb pode fazer
exame de argumentos. Nós usamos da "a ajuda chamada com um
argumento do comando" significar o mesmo que o "tipo comando da
ajuda".
Alguns comandos do gdb fazem exame também de
identificadores do formato para identificar como imprimir valores.
Os identificadores do formato seguem imediatamente o nome do
comando e são separados do nome do comando por um slash. Uma
vez que você escolheu um formato, você não tem que usá-lo cada vez
que você repete o comando; o gdb recordará o formato que você
escolheu como o defeito.
Os identificadores do formato são separados dos comandos
por a/caráter e compostos de três elementos: uma contagem, uma
letra do formato, e uma letra do tamanho. As letras da contagem
e do tamanho são opcionais; a contagem opta 1, e o tamanho tem
os defeitos razoáveis baseados na letra do formato.
As letras do formato são o para octal, x para o
hexadecimal, d para o decimal, u para decimal não assinado, t para
binário, f para floating-point, a para o endereço, i para a
instrução, c para o caráter, e s para a corda.
As letras do tamanho são b para o byte, h para a meia
palavra (2 bytes), w para a palavra (4 bytes), e g para o gigante (8
bytes).
| anexo, em |
Anexo a um processo já-funcionando. O único
argumento é o pid do processo a que para unir. Isto para os
processos a que você anexo, interrompendo algum sono ou a outra
chamada interruptible do sistema em andamento. Veja para
destacar. |
| backtrace, bt, onde, w |
Imprima um traço de pilha. |
| quebre, b |
Ajuste um limite de faturamento. Você pode
especificar um nome da função, uma linha número da lima atual (a
lima que contem o código atualmente executar), um nome de arquivo:
par do linenumber, ou mesmo um endereço arbitrário com *
endereço. Gdb atribui e diz-lhe um número original para cada
limite de faturamento. Veja a circunstância, o espaço livre, e
a supressão. |
| cancele |
Cancele um limite de faturamento. Faz exame dos
mesmos argumentos que a ruptura. Veja a supressão. |
| circunstância |
Muda um limite de faturamento especificado pelo número
(veja a ruptura) para quebrar somente se uma circunstância é
verdadeira. A circunstância é expressada como uma expressão
arbitrária. |
| |
(gdb) limite de faturamento 3 de b 664 em 0x804a5c0:
arquive ladsh4.c, alinhe 664. o == 0 do status da condição 3
(do gdb)
|
| supressão |
Cancele um limite de faturamento pelo número. |
| destaque |
Destaque do processo atualmente unido. |
| exposição |
Indique o valor de uma expressão cada vez que a
execução para. Faz exame dos mesmos argumentos (modificadores
including do formato) como a cópia. Imprime um número da
exposição que possa ser usado mais tarde cancelar a exposição.
Veja undisplay. |
| ajuda |
Comece a ajuda. Chamado com nenhum argumento,
fornece um sumário da ajuda disponível. Chamado com um outro
comando como um argumento, fornece a ajuda nesse comando. Feito
remissão recíproca extensivamente. |
| salto |
Salte a um endereço arbitrário e continue a execução
lá. O endereço é o único argumento, e pode-se especificar
porque uma linha número ou porque um endereço especificou como *
endereço. |
| lista, l |
Com nenhum argumento, a lista primeira alista as 10
linhas que cercam o endereço atual. As chamadas subseqüentes
à lista alistam seções subseqüentes de 10 linhas. Com um
argumento de -, listas as 10 linhas precedentes. |
| |
Com uma linha número, listas as 10 linhas que cercam essa
linha. Com um nome de arquivo: par do linenumber, listas
as 10 linhas que cercam essa linha. Com um nome da função,
listas as 10 linhas que cercam o começo da função. Com um
endereço especificado como * o endereço, especifica as 10 linhas que
cercam o código encontrado nesse endereço. |
| |
Com duas a linha especificações separou por vírgulas, alista
todas as linhas entre as duas linhas especificadas. |
| em seguida, n |
Pise à linha seguinte do código de fonte na função
atual; faça ligações de controle sem pisar. Veja a
etapa. |
| nexti |
Etapa à instrução seguinte da língua de máquina;
faça ligações de controle sem pisar. Veja o stepi. |
| imprima, p |
Imprima o valor de uma expressão em uma
respresentação compreensível. Se você tiver um *c do char, a
cópia c do comando imprimirá o endereço da corda, e o *c da cópia
imprimirá a corda própria. Imprimir estruturas expandirá as
estruturas. Você pode incluir moldes em suas expressões, e o
gdb honrá-las-á. Se o código for compilado com - a opção do
ggdb, os valores enumerated e as definições do preprocessor estarão
disponíveis para você para usar-se em suas expressões. Veja a
exposição. |
| |
As tomadas do comando de cópia formatam identificadores, embora
com tipos apropriados e com typecasts, os identificadores do formato
são raramente necessárias. Veja x. |
| funcione, r |
Funcione o programa atual do começo. Os
argumentos ao comando do funcionamento são os argumentos que seriam
usados funcionar o programa na linha de comando. Gdb fará o
escudo-estilo que globbing com * e [ ], e fará o redirection do
escudo-estilo com <, >, e > >, mas não fará as tubulações ou aqui
os originais. |
| |
Com nenhuns argumentos, o funcionamento usa os argumentos que
foram especificados no comando o mais recente do funcionamento, ou no
jogo o mais recente os args comandam. Para funcionar com nenhuns
argumentos após funcionar com argumentos, use os args do jogo
comandam com nenhuns argumentos extra. |
| ajuste |
Gdb permite que você mude os valores das variáveis,
como este: |
| |
(gdb) ajuste a = argv[5 ]
|
| |
Também, sempre que você imprime uma expressão,
o gdb dá-lhe uma variável do shorthand, como $1, que você pode usar
lhe consultar mais tarde. Assim se você imprimisse previamente
argv[5 ] e o gdb o tivesse dito que era $6, você poderia escrever a
atribuição precedente como |
| |
|
| |
O comando ajustado tem também muitos subcommands,
distante demasiado numerosos a alistar aqui. Use a ajuda
ajustada para mais informação. |
| etapa, s |
Pisa a instrução de programa pela instrução até que
alcance uma linha nova do código de fonte. Veja em seguida. |
| stepi |
Execute exatamente uma instrução da língua de
máquina; traços em ligações de controle. Veja o nexti. |
| undisplay |
Sem algum argumento, cancelamentos todos exposições.
Se não, cancelamentos as exposições cujos os números são
dados como argumentos. Veja a exposição. |
| whatis |
Imprime o tipo de dados de uma expressão dada como seu
argumento. |
| onde, w |
Veja o backtrace. |
| x |
O comando de x é como o comando de cópia, exceto que
está limitado explicitamente a imprimir os índices de um endereço
em algum formato arbitrário. Se você não usar um
identificador do formato, o gdb usará o identificador o mais
recentemente especificado do formato. |
este é um artigo adicionado por Humberto Mitchson
Disclaimer: Nosso Web site não
é responsável para a informação contida por este artigo.
Este artigo em nenhuma maneira reflete as vistas, as opiniões,
os pensamentos ou a opinião da equipe de funcionários do diretório
dos artigos.
Observação da tradução: O artigo "o
que é o debugger do GNU" foi traduzido usando um serviço de
tradução automatizado. Nós desculpamo-nos sincerely por todos
os erros da tradução que ocorram. Obrigado compreendendo.