Verificador

O verificador pode ajudar a encontrar erros que as ferramentas padrão nem sempre podem ser encontradas.
Baixe Agora

Verificador Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL
  • Preço:
  • FREE
  • Nome do editor:
  • Tristan Gingold
  • Site do editor:
  • http://www.gnu.org/software/checker/

Verificador Tag


Verificador Descrição

verificador pode ajudar erros descobrir que ferramentas padrão não pode sempre encontrar. verificador pode ajudar erros descobrir que ferramentas padrão não pode sempre encontrar. O melhor exemplo é vazamentos de memória. Um vazamento de memória é uma zona de memória, alocados com malloc que não é mais usado. Assim, a memória alocada é lost.This meios de programar necessidades mais memória e é executado mais lentamente, uma vez que o seu sistema operacional pode ter que começar a trocar. Ele detecta maus acessos à memória, tais como: leitura de memória não inicializada, escrevendo em uma zona livre, escrever ou ler fora de um bloco de memória, e usando ponteiros nulos. Isso é particularmente útil para grandes programas com muitas functions.Checker mantém bitmaps para acompanhar o estado de cada byte de memória. O status pode ser escrita, leitura, ambos, ou nenhum. Quando a memória é alocada, a nova memória se torna somente gravação: você não tem permissão para lê-lo, porque não foi initialized.But quando você escrever para este novo bloco, os bytes se tornar legível e gravável. Quando o bloco é liberado, os bytes se tornar ilegível e unwritable. zonas vermelhas são a memória ilegíveis e unwritable, de modo que cada acesso a uma zona vermelha produz uma warning.Example: Aqui está um example.c arquivo falso: #include int main () {char * zone = malloc (20) ; char * ptr = NULL; int i; c carvão animal; c = zona de ; / * Erro: ler um não inicializada char * / c = zona de ; / * Erro: ler antes da zona de * / zona de = ' '; / * Erro: gravação após a zona de * / * ptr = 2; / * Erro: usar um ponteiro NULL, deve produzir um núcleo * /} Para compilar este exemplo com Checker, basta usar checkergcc vez de gcc:% checkergcc -o exemplo example.c seguida, para executar o exemplo:% ./exampleExecution produz estas advertências: Checker 0,9 (sparc-sun-solaris2.5.1) Copyright (C) 1998 Tristan Gingold.Checker é um acesso à memória detector.Checker é distribuído na esperança de que será útil, mas SEM QUALQUER GARANTIA; sem mesmo a ofMERCHANTABILITY garantia implícita ou adequação a uma finalidade específica. Consulte a Licença Pública GNUGeneral por mais details.For mais informações, definir CHECKEROPTS para `Checker --help'From (pid: 04713):` ./example' está em execução (Sun 18 jan 14:56:491998) De Checker ( PID: 04713): (ruh) ler não inicializada byte (s) em um block.When leitura 1 byte (s) no 0x000398a1 endereço, no interior da pilha (sbrk) .1 bytes em um bloco (start: 0x398a0, comprimento: 20, mdesc: 0x0) .O bloco foi alocado a partir de: pc = 0x00022f1c em chkr_malloc no pc ../stubs/stubs-malloc.c:51 = 0x0001339c no principal no ../example.c:7 pc = 0x000155f0 na inicialização. ./config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * desconhecido * em * desconhecido *: quadros 0Stack são: pc = 0x000133f4 na principal no ../example.c:12 pc = 0x000155f0 na inicialização. ./config/sparc/solaris2/startup.c:148 pc = 0x00013298 em desconhecido * * * a * desconhecido: Verificador 0From (PID: 04713): (BVH) bloco delimita violação no heap.When leitura 1 byte (s) em 0x0003989e endereço, no interior da pilha (sbrk) .2 bytes antes de um bloco (start: 0x398a0, comprimento: 20, mdesc: 0x0) .O bloco foi alloca ted de: pc = 0x00022f1c em chkr_malloc em ../stubs/stubs-malloc.c:51 pc = 0x0001339c no principal no ../example.c:7 pc = 0x000155f0 na inicialização em ../config/sparc/solaris2/ startup.c: 148 pc = 0x00013298 in * desconhecido * em * desconhecido *: quadros 0Stack são: pc = 0x00013434 na principal no ../example.c:13 pc = 0x000155f0 na inicialização em ../config/sparc/solaris2/ startup.c: 148 pc = 0x00013298 in * desconhecido * em * desconhecido *: Checker 0From (pid: 04713): (BVH) bloco limita violação na heap.When Escrita 1 byte (s) em 0x000398b9 endereço, dentro da pilha ( sbrk) .5 bytes após um bloco (start: 0x398a0, comprimento: 20, mdesc: 0x0) .O bloco foi atribuído a partir de: PC = 0x00022f1c em chkr_malloc em ../stubs/stubs-malloc.c:51 pc = 0x0001339c em principal no ../example.c:7 pc = 0x000155f0 na inicialização em ../config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * desconhecido * em * desconhecido *: quadros 0Stack são: pc = 0x0001345c no principal no ../example.c:14 pc = 0x000155f0 na inicialização em ../config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * desconhecido * em * desconhecido *: Checker 0From (PID: 04713): (NZA) zona nula addressed.When escrita 1 byte (s) no endereço 0x00000000, no interior do nulo zone.You provavelmente deferenced um nulo pointer.THIS deve causar quadros uma segmentação FAULT.Stack são: PC = 0x0001347c na principal no ../example.c:15 pc = 0x000155f0 na inicialização em ../config/sparc/solaris2/startup.c:148 pc = 0x00013298 in * desconhecido * em * desconhecido *: Checker 0From (pid: 04713) : (SIG) sinal signal.Receive 11 (SEGV): (acção predefinida: encerrar núcleo) falha .Segmentation


Verificador Software Relacionado