O que é o debugger do GNU

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

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
 
(gdb) ajuste a = $ 6  

  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.


Online: 1253 users browsing the articles directory