GNU cflow 1.7 har redan släppts och kommer med nya kommandon och mer

Efter tre års utveckling lanseringen av den nya versionen av GNU cflow-verktyget 1.7 tillkännagavs. För dem som inte är medvetna om det här verktyget bör de veta att det är det designad för att bygga en visuell graf över funktionsanrop i C-program, som kan användas för att förenkla studiet av tillämpningslogik.

Grafeneller så bygger den enbart från analysen av källtexterna, utan att behöva köra programmet, plus att det stöder generering av framåt- och bakåtflödesgrafer, samt generering av korsreferenslistor för filer med kod.

Paketet är fullt funktionellt och kompilerar och körs på valfri GNU/Linux-distribution och även på nyare UNIX-liknande system. Den stöder alla linjeväxlingskommandon som krävs av POSIX. Den kan producera utdata i två format: GNU cflow-format (som är standard) och POSIX-format.

För närvarande kan verktyget endast bearbeta C-teckensnitt, eftersom detta är den enda avvikelsen från POSIX-specifikationerna, vilket kräver förmågan att bearbeta YACC- och LEX-teckensnitt, såväl som binära objektfiler.

Emacs-modulen cflow-mode.el fungerar med filer i GNU cflow-formatet (till skillnad från POSIX-formatet) och har testats med Emacs 24.2.1.

De viktigaste nya funktionerna i GNU cflow 1.7

I denna nya version av releasen känd för att implementera stöd för utdataformatet "prick". ('–Format = dot') för att generera ett DOT-resultat för vidare bearbetning i Graphviz-paketet.

Dessutom markeras det också lade till möjligheten att specificera flera startfunktioner genom att duplicera '–main'-alternativen, som kommer att genereras med en separat graf för var och en av dessa funktioner.

Det noteras också att alternativet "–target=FUNCTION" för att begränsa den resulterande grafen till bara en gren som inkluderar vissa funktioner (alternativet "–mål" kan anges flera gånger).

En annan förändring som har integrerats i denna nya version av GNU cflow 1.7 är det nya kommandon för sjökortsnavigering har lagts till ett cflow-läge:"c" som används för att gå till anropsfunktionen, "n" som används för att gå till nästa funktion i denna kapslingsnivå och "p" för att gå till föregående funktion med samma kapslingsnivå .

Å andra sidan nämns det också i tillkännagivandet av denna nya version av GNU cflow 1.7 att det också två sårbarheter har tagits bort som identifierades 2019 och orsakade minneskorruption vid bearbetning av specialgjorda källtexter i cflow.

Av de sårbarheter som åtgärdades nämns följande:

  • Den första sårbarheten (CVE-2019-16165) uppstår vid åtkomst till minne efter att det har frigjorts (use-after-free) i parserkoden (referensfunktion i parser.c).
  • Den andra sårbarheten (CVE-2019-16166) är relaterad till ett buffertspill i funktionen nexttoken(). Enligt utvecklarnas åsikt utgör dessa problem inte något säkerhetshot, eftersom de är begränsade till onormalt avbrott av verktyget.

Slutligen om du är intresserad av att veta mer om det om den här nya versionen kan du kolla in detaljerna följande länk.

Hur installerar man cflow på Linux?

För de som är intresserade av att kunna installera det här verktyget på sitt system, bör de veta att cflow finns inom förråden för några av de viktigaste Linux-distributionerna. Jag måste bara nämna att den nya versionen ännu inte har implementerats i några av dem, men det är en fråga om dagar innan den är klar.

För de som är användare av Debian, Ubuntu eller någon derivat av dessa kan de installera från terminalen genom att skriva följande kommando:

sudo apt install cflow -y

I fallet med användare av Arch Linux, Manjaro eller någon annan distribution som härrör från dessa, måste installationen göras från AUR-arkiven:

yay -s cflow

När det gäller de som är intresserade av att kunna kompilera den nya versionen kan denna erhållas från följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.