GNU cflow 1.7 вже випущено і містить нові команди та багато іншого

Після трьох років розвитку було оголошено про вихід нової версії утиліти GNU cflow 1.7. Для тих, хто не знає про цю утиліту, вони повинні знати, що вона є призначений для побудови візуального графіка викликів функцій у програмах C, який можна використовувати для спрощення вивчення логіки програми.

Графікабо він побудований виключно на основі аналізу вихідних текстів, без необхідності запускати програму, крім підтримки генерації графіків прямого та зворотного потоків, а також генерації списків перехресних посилань для файлів із кодом.

Пакет є повністю функціональним, компілюється та працює на будь-якому дистрибутиві GNU/Linux, а також у нових UNIX-подібних системах. Він підтримує всі перемикачі командного рядка, необхідні POSIX. Він здатний видавати результати в двох форматах: у форматі Cflow GNU (який є за замовчуванням) і у форматі POSIX.

Наразі утиліта може обробляти лише шрифти C, оскільки це єдине відхилення від специфікацій POSIX, що вимагає можливості обробляти шрифти YACC і LEX, а також файли бінарних об’єктів.

Модуль Emacs cflow-mode.el працює з файлами у форматі cflow GNU (на відміну від формату POSIX) і був протестований з Emacs 24.2.1.

Основні нові можливості GNU cflow 1.7

У цій новій версії випуску виділяється реалізацією сумісності з форматом виведення «точка» ('–Format = dot'), щоб створити результат DOT для подальшої обробки в пакеті Graphviz.

Крім того, це також виділено додана можливість вказувати кілька функцій запуску, дублюючи параметри «–main», яка буде створена з окремим графіком для кожної з цих функцій.

Також зазначається, що варіант "–Target = FUNCTION", щоб обмежити результуючу діаграму лише однією гілкою який включає певні функції (параметр «–target» можна вказати кілька разів).

Ще одна зміна, яка була інтегрована в цю нову версію GNU cflow 1.7, полягає в тому були додані нові команди для навігації по діаграмі cflow-mode: »c», який використовується для переходу до функції, що викликає, «n», який використовується для переходу до наступної функції на цьому рівні вкладення, і «p» для переходу до попередньої функції з вкладеністю того ж рівня.

З іншого боку, в анонсі цієї нової версії GNU cflow 1.7 також згадується, що вона також дві вразливості було видалено які були виявлені у 2019 році, що спричиняють пошкодження пам’яті під час обробки спеціально створених вихідних текстів у cflow.

З уразливостей, які були виправлені, згадується наступне:

  • Перша вразливість (CVE-2019-16165) виникає при доступі до пам’яті після її звільнення (використання після звільнення) у коді синтаксичного аналізатора (довідкова функція в parser.c).
  • Друга вразливість (CVE-2019-16166) стосується переповнення буфера у функції nexttoken (). На думку розробників, ці проблеми не становлять загрози безпеці, оскільки обмежуються аномальним припиненням роботи утиліти.

В кінці кінців якщо вам цікаво дізнатись більше про це про цю нову версію, ви можете перевірити деталі в за наступним посиланням.

Як встановити cflow на Linux?

Для тих, хто зацікавлений у можливості встановити цю утиліту в свою систему, вони повинні знати, що cflow знаходиться в репозиторіях деяких з основних дистрибутивів Linux. Хочу лише зазначити, що нова версія ще не впроваджена в деяких із них, але це питання днів, коли вона буде готова.

Для тих, хто є користувачами Debian, Ubuntu або будь-якої похідної від них, вони можуть встановити з терміналу, ввівши таку команду:

sudo apt install cflow -y

У випадку Arch Linux, Manjaro або будь-якого іншого дистрибутива, отриманого від цих користувачів, інсталяція повинна здійснюватися зі сховищ AUR:

yay -s cflow

Що стосується тих, хто зацікавлений у можливості компіляції нової версії, це можна отримати з наступне посилання.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.