GNU cflow 1.7 đã được phát hành và đi kèm với các lệnh mới và hơn thế nữa

Sau ba năm phát triển việc phát hành phiên bản mới của tiện ích GNU cflow 1.7 đã được công bố. Đối với những người không biết về tiện ích này, họ nên biết rằng nó là được thiết kế để xây dựng một đồ thị trực quan của các lệnh gọi hàm trong các chương trình C, có thể được sử dụng để đơn giản hóa việc nghiên cứu logic ứng dụng.

biểu đồhoặc nó chỉ được xây dựng từ việc phân tích các văn bản nguồn, mà không cần phải chạy chương trình, thêm vào đó, nó hỗ trợ tạo đồ thị dòng chuyển tiếp và đảo ngược, cũng như tạo danh sách tham chiếu chéo cho các tệp có mã.

Gói có đầy đủ chức năng, biên dịch và chạy trên bất kỳ bản phân phối GNU / Linux nào cũng như trên các hệ thống giống UNIX mới hơn. Nó hỗ trợ tất cả các lệnh chuyển dòng theo yêu cầu của POSIX. Nó có khả năng tạo ra đầu ra ở hai định dạng: định dạng GNU cflow (là định dạng mặc định) và định dạng POSIX.

Hiện tại, tiện ích này chỉ có thể xử lý phông chữ C, vì đây là độ lệch duy nhất so với thông số kỹ thuật POSIX, yêu cầu khả năng xử lý Phông chữ YACC và LEX, cũng như các tệp đối tượng nhị phân.

Mô-đun cflow-mode.el Emacs hoạt động với các tệp ở định dạng GNU cflow (trái ngược với định dạng POSIX) và đã được thử nghiệm với Emacs 24.2.1.

Các tính năng mới chính của GNU cflow 1.7

Trong phiên bản phát hành mới này đáng chú ý vì triển khai hỗ trợ cho định dạng đầu ra "chấm" ('–Format = dot') để tạo kết quả DOT để xử lý thêm trong gói Graphviz.

Ngoài ra, nó cũng được nhấn mạnh rằng đã thêm khả năng chỉ định nhiều chức năng khởi động bằng cách sao chép các tùy chọn '–main', sẽ được tạo với một đồ thị riêng biệt cho từng hàm này.

Cũng cần lưu ý rằng tùy chọn đã được thêm vào "–Target = FUNCTION" để hạn chế biểu đồ kết quả chỉ ở một nhánh bao gồm các chức năng nhất định (tùy chọn “–target” có thể được chỉ định nhiều lần).

Một thay đổi khác đã được tích hợp trong phiên bản GNU cflow 1.7 mới này là các lệnh mới để điều hướng biểu đồ đã được thêm vào cflow-mode: "c" được sử dụng để chuyển đến hàm gọi, "n" được sử dụng để chuyển đến hàm tiếp theo trong cấp độ lồng này và "p" để chuyển đến hàm trước đó với cùng cấp độ lồng .

Mặt khác, nó cũng được đề cập trong thông báo về phiên bản GNU cflow 1.7 mới này cũng hai lỗ hổng bị xóa đã được xác định vào năm 2019 gây ra hỏng bộ nhớ khi xử lý văn bản nguồn được tạo đặc biệt trong cflow.

Trong số các lỗ hổng bảo mật đã được khắc phục, những lỗ hổng sau được đề cập:

  • Lỗ hổng đầu tiên (CVE-2019-16165) xảy ra khi bộ nhớ được truy cập sau khi miễn phí (use-after-free) trong mã phân tích cú pháp (hàm tham chiếu trong phân tích cú pháp.c).
  • Lỗ hổng thứ hai (CVE-2019-16166) liên quan đến lỗi tràn bộ đệm trong hàm nexttoken (). Theo ý kiến ​​của các nhà phát triển, những vấn đề này không phải là mối đe dọa bảo mật, vì chúng chỉ giới hạn ở việc tiện ích bị chấm dứt bất thường.

Cuối cùng nếu bạn muốn biết thêm về nó về phiên bản mới này, bạn có thể kiểm tra chi tiết trong liên kết sau.

Làm thế nào để cài đặt cflow trên Linux?

Đối với những người quan tâm đến việc có thể cài đặt tiện ích này trên hệ thống của họ, họ nên biết rằng cflow nằm trong kho của một số bản phân phối Linux chính. Tôi chỉ phải đề cập rằng phiên bản mới vẫn chưa được triển khai ở một số người trong số họ, nhưng nó sẽ sẵn sàng trong vài ngày tới.

Trong trường hợp những người là người dùng Debian, Ubuntu hoặc bất kỳ dẫn xuất nào của những thứ này, họ có thể cài đặt từ thiết bị đầu cuối bằng cách gõ lệnh sau:

sudo apt install cflow -y

Trong trường hợp người dùng Arch Linux, Manjaro hoặc bất kỳ bản phân phối nào khác có nguồn gốc từ những thứ này, việc cài đặt phải được thực hiện từ kho lưu trữ AUR:

yay -s cflow

Đối với những người quan tâm đến việc có thể biên dịch phiên bản mới, họ có thể lấy nó từ liên kết theo dõi.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.