InglêsFrancêsEspanhol

favicon do OnWorks

pmccabe - On-line na nuvem

Execute pmccabe no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando pmccabe que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas múltiplas estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online de Windows ou emulador online de MAC OS.

PROGRAMA:

NOME


pmccabe - calcula a complexidade ciclomática de McCabe ou contagens de linhas não comentadas para C e
Programas C ++

SINOPSE


pmccabe [-bCdfFntTvV?] [arquivos)]

DESCRIÇÃO


pmccabe processa os arquivos nomeados ou a entrada padrão se nenhum for nomeado. No modo padrão
ele calcula estatísticas incluindo a complexidade ciclomática McCabe para cada função. O
espera-se que os arquivos sejam C (ANSI ou K&R) ou C++.

-? Imprima uma mensagem informativa de uso.

-v Imprimir cabeçalhos de colunas

-V Impressão pmccabe número da versão

Descomentando modo
-d Destina-se a ajudar a contar linhas de origem não comentadas por meio de algo como:

pmccabe -d *.c | grep -v '^[]*$' | wc-l

Os comentários são removidos, cpp directivas são substituídas por cpp, literais de string são
substituído por STRINGLITERAL, constantes de caracteres são substituídas por CARLITERAL. O
o código-fonte resultante é muito mais fácil de analisar. Este é o primeiro passo realizado por
pmccabe para que seu analisador possa ser mais simples.

Nenhuma das outras opções funciona de forma sensata com -d.

Contagem de linhas modo
-n Conta linhas de origem não comentadas. O formato de saída é idêntico ao do
anaque programa, exceto que os cabeçalhos das colunas e os totais devem ser solicitados, se desejado.
Se você quiser cabeçalhos de coluna, adicione -v. Se você quiser os totais, adicione -t. Se tudo que você quer é
soma total -T.

Complexidade modo (Padrão)
-C Formato de saída personalizado – não o use.

-c Relate linhas não comentadas e não em branco por função (e arquivo) em vez do bruto
número de linhas. Note que pré-processador directivas e guarante que os mesmos estão NÃO contado.

-b Formato de saída compatível com ferramentas de navegação de erros do compilador que entendem
Erros "clássicos" do compilador. A classificação numérica neste formato é possível usando:

classificar -n +1 -t%

-t Imprimir totais da coluna. Observe que o número total de linhas *NÃO* é o número de linhas não
linhas de origem comentadas - é o mesmo que seria relatado por "wc -l".

-T Imprimir totais da coluna *SOMENTE*.

-f Inclua os totais por arquivo juntamente com os totais por função.

-F Imprima os totais por arquivo, mas NÃO os totais por função.

Análise
pmccabe ignora tudo cpp diretivas de pré-processador - calculando a complexidade do
aparência do código em vez da complexidade depois que o pré-processador deturpa o código.
Isto é especialmente importante porque coisas simples como pegarchar(3) expandir em macros que
aumentar a complexidade.

saída Formato
Uma linha é escrita na saída padrão para cada função encontrada no formato:

Complexidade Ciclomática McCabe Modificada
| Complexidade Ciclomática McCabe Tradicional
| | # Declarações em função
| | | Primeira linha de função
| | | | # linhas em função
| | | | | nome do arquivo (número da linha de definição): função
| | | | | |
5 6 11 34 27 gettoken.c(35): parêntese

A coluna 1 contém complexidade ciclomática calculada adicionando 1 (para a função) ao
ocorrências de for, if, enquanto, interruptor, &&, || e ?. Ao contrário da ciclomática McCabe "normal"
complexidade, cada caso em uma instrução switch não é contado como complexidade adicional. Esse
o tratamento de instruções switch e complexidade pode ser mais útil do que a medida "normal"
para julgar o esforço de manutenção e a dificuldade do código.

A coluna 2 é a complexidade ciclomática calculada da maneira "usual" em relação à mudança
declarações. Especificamente, é calculado como na coluna 1, mas contando cada casas em vez
que o interruptor e pode ser mais útil que a coluna 1 para avaliar o esforço de teste.

A coluna 3 contém uma contagem de instruções. É calculado somando cada ocorrência de for,
if, enquanto, interruptor, ?e ponto e vírgula dentro da função. Uma possível surpresa é que
for declarações têm uma contagem mínima de declarações de 3. Isso é realista, pois para; B;
C){...} é realmente uma abreviatura para A; enquanto (B) { ... C;}. O número de declarações dentro
um arquivo é a soma do número de instruções para cada função implementada naquele
arquivo, mais um para cada uma dessas funções (porque funções também são instruções), mais
uma para cada outra instrução com escopo de arquivo (geralmente declarações).

A coluna 4 contém o número da primeira linha da função. Isso não é necessariamente o mesmo
linha na qual o nome da função aparece.

A coluna 5 é o número de linhas da função, desde o número na coluna 4 até o
linha contendo a chave de fechamento.

A coluna final contém o nome do arquivo, o número da linha em que ocorre o nome da função,
e o nome da função.

APLICAÇÕES


A aplicação óbvia de pmccabe é ilustrado pelo seguinte, que fornece uma lista de
as "dez principais" funções mais complexas:

pmccabe *.c | classificar -nr | cabeça -10

Muitos arquivos contêm mais de uma função C e às vezes seria útil extrair
cada função separadamente. matchparen() (veja o exemplo de saída acima) pode ser extraído de
gettoken.c extraindo 27 linhas começando com a linha 34. Isso pode formar a base das ferramentas
que operam em funções em vez de arquivos (por exemplo, use como front-end para diff(1)).

DIAGNÓSTICO


pmccabe retorna um status de saída diferente de zero se os arquivos não puderem ser abertos e ao encontrar
alguns erros de análise.

Mensagens de erro para erro padrão, geralmente explicando que o analisador está confuso sobre
alguma coisa, imite mensagens de erro clássicas do compilador C.

AVISOS


pmccabe é confundido por chaves ou parênteses incomparáveis ​​que às vezes ocorrem com
uso apressado de cpp diretivas. Nestes casos é impresso um diagnóstico e a complexidade
os resultados dos arquivos nomeados podem não ser confiáveis. Na maioria das vezes as diretivas "#ifdef" podem ser
modificado de forma que as chaves correspondam. Observe que se pmccabe está confuso com um cpp
directiva, as impressoras mais bonitas também o serão. Em alguns casos, o pré-processamento com unifdef(1)
pode ser apropriado.

A contagem de declarações poderia ser melhorada: contando as ocorrências da vírgula
operador, múltiplas atribuições, atribuições em testes condicionais e lógica
conjunção. No entanto, como não existe uma definição nítida de declaração na linguagem ou
das pessoas que consultei, a contagem de extratos provavelmente não será melhorada. Se você tem um
definição nítida, ficarei feliz em considerá-la.

Causa dos modelos pmccabescanner para sair.

É uma pena que ctags a saída não é fornecida.

Use pmccabe online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    iReport-Designer para JasperReports
    iReport-Designer para JasperReports
    NOTA: Suporte ao iReport/Jaspersoft Studio
    Anúncio: A partir da versão 5.5.0,
    Jaspersoft Studio será o oficial
    cliente de design para JasperReports. Eu informo
    vai...
    Baixar iReport-Designer para JasperReports
  • 2
    PostInstallerF
    PostInstallerF
    PostInstallerF irá instalar todos os
    software que o Fedora Linux e outros
    não inclui por padrão, após
    executando o Fedora pela primeira vez. Seu
    fácil para ...
    Baixar PostInstallerF
  • 3
    traço
    traço
    O projeto strace foi movido para
    https://strace.io. strace is a
    diagnóstico, depuração e instrução
    rastreador de espaço do usuário para Linux. É usado
    para monitorar um...
    Baixar strace
  • 4
    gMKVEExtractGUI
    gMKVEExtractGUI
    Uma GUI para o utilitário mkvextract (parte do
    MKVToolNix) que incorpora a maioria (se
    nem todas) funcionalidade de mkvextract e
    utilitários mkvinfo. Escrito em C#NET 4.0,...
    Baixar gMKVExtractGUI
  • 5
    Biblioteca JasperReports
    Biblioteca JasperReports
    A biblioteca JasperReports é a
    código aberto mais popular do mundo
    inteligência de negócios e relatórios
    motor. É inteiramente escrito em Java
    e é capaz de ...
    Baixe a Biblioteca JasperReports
  • 6
    Livros Frappe
    Livros Frappe
    Frappe Books é um software livre e de código aberto
    software de contabilidade de desktop que é
    simples e bem projetado para ser usado por
    pequenas empresas e freelancers. Isto'...
    Baixar Livros Frappé
  • Mais "

Comandos Linux

Ad