GNU cflow 1.7 já foi lançado e vem com novos comandos e mais

Após três anos de desenvolvimento o lançamento da nova versão do utilitário GNU cflow 1.7 foi anunciado. Para quem desconhece esta utilidade, deve saber que é projetado para construir um gráfico visual de chamadas de função em programas C, que pode ser usado para simplificar o estudo da lógica do aplicativo.

O gráficoou é construído unicamente a partir da análise dos textos-fonte, sem a necessidade de executar o programa, além de suportar a geração de gráficos de fluxo direto e reverso, bem como a geração de listas de referências cruzadas para arquivos com código.

O pacote é totalmente funcional e compila e roda em qualquer distribuição GNU/Linux e também em sistemas mais recentes do tipo UNIX. Ele suporta todas as opções de linha de comando necessárias para POSIX. É capaz de produzir resultados em dois formatos: no formato GNU cflow (que é o padrão) e no formato POSIX.

Atualmente, o utilitário só pode processar fontes C, pois este é o único desvio das especificações POSIX, exigindo a capacidade de processar fontes YACC e LEX, bem como arquivos de objetos binários.

O módulo Emacs cflow-mode.el funciona com arquivos no formato GNU cflow (em oposição ao formato POSIX) e foi testado com o Emacs 24.2.1.

Principais novos recursos do GNU cflow 1.7

Nesta nova versão do lançamento destaca-se pela implementação de compatibilidade com o formato de saída "ponto" ('–Format = dot') para gerar um resultado DOT para processamento adicional no pacote Graphviz.

Além disso, também é destacado que adicionou a capacidade de especificar várias funções de inicialização duplicando as opções '–main', que será gerado com um gráfico separado para cada uma dessas funções.

Note-se também que a opção "–Target = FUNCTION" para restringir o gráfico resultante a apenas uma ramificação que inclui certas funções (a opção "–target" pode ser especificada várias vezes).

Outra mudança que foi integrada nesta nova versão do GNU cflow 1.7 é que novos comandos foram adicionados para navegação de carta a cflow-mode: »c" que é usado para ir para a função de chamada, "n" que é usado para ir para a próxima função neste nível de aninhamento e "p" para ir para a função anterior com o mesmo nível de aninhamento.

Por outro lado, também é mencionado no anúncio desta nova versão do GNU cflow 1.7 que também duas vulnerabilidades foram removidas que foram identificados em 2019 causando corrupção de memória ao processar textos de origem especialmente criados no cflow.

Das vulnerabilidades que foram corrigidas, é mencionado o seguinte:

  • A primeira vulnerabilidade (CVE-2019-16165) ocorre ao acessar a memória após liberá-la (use-after-free) no código do analisador (função de referência em parser.c).
  • A segunda vulnerabilidade (CVE-2019-16166) está relacionada a um estouro de buffer na função nexttoken(). Na opinião dos desenvolvedores, esses problemas não representam uma ameaça à segurança, pois estão limitados ao encerramento anormal do utilitário.

Finalmente se você estiver interessado em saber mais sobre isso sobre esta nova versão, você pode verificar os detalhes em o seguinte link.

Como instalar o cflow no Linux?

Para quem estiver interessado em poder instalar este utilitário em seu sistema, deve saber que o cflow está dentro dos repositórios de algumas das principais distribuições Linux. Só tenho que mencionar que a nova versão ainda não foi implementada em alguns deles, mas é uma questão de dias até que esteja pronta.

Para aqueles que são usuários do Debian, Ubuntu ou qualquer derivado destes, eles podem instalar a partir do terminal digitando o seguinte comando:

sudo apt install cflow -y

No caso do Arch Linux, Manjaro ou qualquer outra distribuição derivada desses usuários, a instalação deve ser feita a partir dos repositórios AUR:

yay -s cflow

Quanto aos interessados ​​em poder compilar a nova versão, esta pode ser obtida no link a seguir


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.