Qual é o nome apropriado para fazer a depuração, adicionando declarações 'impressão'

StackOverflow https://stackoverflow.com/questions/189562

  •  06-07-2019
  •  | 
  •  

Pergunta

Existem muitas maneiras de fazer a depuração, usando um depurador é um, mas o simples para os humildes, preguiçoso, programador é apenas adicionar um monte de instruções de impressão para o seu código.

i.

 def foo(x):
     print 'Hey wow, we got to foo!', x

     ...

     print 'foo is returning:', bar
     return bar

Existe um nome adequado para este estilo de depuração?

Foi útil?

Solução

Sim - é conhecido como printf() depuração , em homenagem a função C onipresente:

Usado para descrever o trabalho de depuração feita por Inserção de comandos que a saída ou mais menos cuidadosamente estado escolhido informações em pontos-chave no programa de fluxo, observando que informação e deduzir do que errado com base nessa informação.

- printf () depuração @ everything2

usuários nativos de outras línguas referem-se, sem dúvida, a ele pela impressão padrão / log / ou comando trace disponível para sua codificação plataforma de escolha, mas eu ouvi o "printf ()" nome usado para, comunique a esta técnica em muitas outras que C. línguas Talvez isso se deva à sua história: enquanto BASIC e FORTRAN teve comandos básicos, mas Prestativo PRINT, C geralmente necessário um pouco mais de trabalho para formatar vários tipos de dados: printf() era (e muitas vezes ainda é) por muito o meio mais conveniente para esse fim, fornecendo muitos built-in opções de formatação. Seu primo, fprintf(), toma outro parâmetro, o fluxo para gravar: isto permitiu um "debugger" cuidado para dirigir informações de diagnóstico para stderr (possivelmente em si redirecionado para um arquivo de log), deixando a saída do programa não corrompido.

Embora muitas vezes menosprezado pelos usuários de software de depuração moderno, printf () depuração continua a revelar-se indispensável: a ferramenta Firebug muito popular para o navegador Firefox (e ferramentas semelhantes agora disponível para outros navegadores) é construído em torno de um console janela para quais scripts página web pode registrar erros ou mensagens de diagnóstico contendo dados formatados.

Outras dicas

Já ouvi-lo chamado Caveman depuração

Eu pensei que a seguinte citação seria apropriado:

"A ferramenta de depuração mais eficaz ainda é o pensamento cuidadoso, juntamente com instruções de impressão judiciosamente colocados."

  • Brian Kernighan, "Unix para iniciantes" (1979)

Eu chamo-Tracing.

mim e meus companheiros chamando-o "Old School depuração".

assento de suas calças de depuração :)

Quando você está em um sistema embarcado, quando você está na borda do sangramento e da língua que você está codificando em não ter um depurador ainda, quando o depurador está se comportando estranhamente e você deseja restaurar alguma sanidade, e você quer entender como reentrada está trabalhando em código de multi-threaded, ....

No mesmo sentido como exploratória programação , eu gosto de chamá-lo depuração exploratória . Isto segue quando o depurador não é poderoso o suficiente para examinar tipos complexos no programa, ou invocar funções auxiliares separadamente, ou você simplesmente não sabe o suficiente sobre um bug para uso disse recursos diretamente.

Eu chamo isso de programação "Oi, mãe".

Eu também ouvi o termo "MessageBox depuração" da multidão VB para se referir a esse 'estilo' de 'depuração'.

I sistemas embarcados seu frequentemente o único método para instrumentar o código. Infelizmente a impressão leva tempo e os efeitos do fluxo em tempo real do sistema. Então nós também instrumento através de "rastreamento", onde informações sobre o estado do sistema (função entrada saída etc) são gravados em um buffer interno a ser objecto de dumping e analisado posteriormente. programadores real embarcados pode depurar pelo piscar um LED;)

Eu ouvi " Gutenberg depuração " a ser utilizado, em honra do o cara que inventou a imprensa .

Eu chamaria isso simplesmente " logging ".

I geralmente se referem a ele como o rastreamento.

Note que no Visual Studio você pode definir pontos de interrupção que basta adicionar o rastreamento. Botão direito do mouse em um ponto de interrupção, selecione "quando hit ..." e marque a opção "Imprimir uma mensagem".

Além disso, em .Net você pode adicionar depuração declarações (acho que na verdade é Debug.WriteLine) para a saída para o console. Estes statments só são incluídos no compilações de depuração -. O compilador vai deixá-los automaticamente quando você faz uma compilação de lançamento

Clássico depuração

As afirmações manual? Debugger Phobia?

verbose de depuração!

(Boa logging é incrivelmente valioso para depurar problemas na execução de sistemas de produção. Muitas declarações de impressão detalhado inúteis não são, mas o registo algo interessante quando algo importante ou inesperado é incrivelmente importante. Se a única maneira que você sabe de depurar problemas é com um depurador, você vai encontrar-se em muito o local apertado quando o serviço que você construiu é quebrada para alguns de seus usuários, mas você não pode reproduzir o problema localmente.)

Eu sempre soube que pelo termo 'depuração rápida e suja', ou simplesmente 'depuração suja' em suma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top