Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Biểu tượng yêu thích OnWorks

máy lọc máu - Trực tuyến trên đám mây

Chạy trình thẩm tách trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình mô phỏng trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là trình quay số lệnh có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình mô phỏng trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


quả lọc máu - Dialyzer, Công cụ phân tích sự khác biệt cho các chương trình ERlang

MÔ TẢ


Dialyzer là một công cụ phân tích tĩnh giúp xác định những khác biệt về phần mềm, chẳng hạn như
lỗi loại xác định, mã đã chết hoặc không thể truy cập được do một số chương trình
lỗi, các kiểm tra không cần thiết, v.v. trong các mô-đun Erlang đơn lẻ hoặc toàn bộ (bộ) ứng dụng.
Dialyzer bắt đầu phân tích từ mã byte BEAM được biên dịch gỡ lỗi hoặc từ Erlang
mã nguồn. Tệp và số dòng có sự khác biệt được báo cáo cùng với
dấu hiệu cho thấy sự khác biệt là gì. Dialyzer thực hiện phân tích dựa trên khái niệm
kiểu gõ thành công cho phép cảnh báo bằng âm thanh (không có kết quả dương tính giả).

Đọc thêm về Dialyzer và cách sử dụng nó từ GUI trong Máy quay số Của người dùng Hướng dẫn.

SỬ DỤNG CÁC MÁY QUAY TỪ CÁC COMMAND ĐƯỜNG DÂY


Dialyzer cũng có phiên bản dòng lệnh để sử dụng tự động. Dưới đây là một mô tả ngắn gọn
trong danh sách các lựa chọn của nó. Thông tin tương tự có thể thu được bằng cách viết

máy lọc máu --help

trong một cái vỏ. Vui lòng tham khảo mô tả GUI để biết thêm chi tiết về hoạt động của
Máy lọc máu.

Trạng thái thoát của phiên bản dòng lệnh là:

0 - Không gặp vấn đề gì trong quá trình phân tích và không có
những cảnh báo đã được đưa ra.
1 - Các vấn đề gặp phải trong quá trình phân tích.
2 - Không gặp vấn đề gì nhưng có cảnh báo.

Cách sử dụng:

máy lọc máu [--help] [--version] [--shell] [--quiet] [--verbose]
[-pa dir]* [--plt plt] [--plts plt*] [-Ddefine]*
[-I include_dir]* [--output_plt file] [-Wwarn]* [--raw]
[--src] [--gui] [files_or_dirs] [-r dirs]
[--ứng dụng ứng dụng] [-o outfile]
[--build_plt] [--add_to_plt] [--remove_from_plt]
[--check_plt] [--no_check_plt] [--plt_info] [--get_warnings]
[--dump_callgraph file] [--no_native] [--fullpath]
[--statistics] [--no_native_cache]

Tùy chọn:

tập tin_hoặc_dirs (để tương thích ngược cũng như: -c tập tin_hoặc_dirs):
Sử dụng Dialyzer từ dòng lệnh để phát hiện lỗi trong các tệp được chỉ định hoặc
thư mục chứa .erl or .chùm tia các tập tin, tùy thuộc vào loại phân tích.

-r dirs:
Tương tự như trước nhưng các thư mục được chỉ định sẽ được tìm kiếm đệ quy cho
thư mục con chứa .erl or .chùm tia các tập tin trong đó, tùy thuộc vào loại
phân tích.

- ứng dụng các ứng dụng:
Tùy chọn thường được sử dụng khi xây dựng hoặc sửa đổi plt như trong:

dialyzer --build_plt --apps erts kernel stdlib mnesia ...

dialyzer --apps inets ssl ./ebin ../other_lib/ebin/my_module.beam

-o ô uế (Hoặc - đầu ra ô uế):
Khi sử dụng Dialyzer từ dòng lệnh, hãy gửi kết quả phân tích đến địa chỉ được chỉ định
outfile thay vì stdout.

--thô:
Khi sử dụng Dialyzer từ dòng lệnh, xuất kết quả phân tích thô (Erlang
điều khoản) thay vì kết quả được định dạng. Định dạng thô dễ xử lý hậu kỳ hơn (đối với
dụ, để lọc cảnh báo hoặc xuất ra các trang HTML).

--src:
Ghi đè mặc định là phân tích file BEAM và phân tích bắt đầu từ Erlang
mã nguồn thay thế.

-Tên (Hoặc -Tên = giá trị):
Khi phân tích từ nguồn, hãy chuyển định nghĩa tới Dialyzer. (**)

-I bao gồm_dir:
Khi phân tích từ nguồn, hãy chuyển bao gồm_dir tới máy thẩm tách. (**)

-pa dir:
Bao gồm dir trong đường dẫn cho Erlang (hữu ích khi phân tích các tệp có
'-include_lib()' chỉ thị).

--output_plt hồ sơ:
Lưu trữ plt tại tệp đã chỉ định sau khi xây dựng nó.

--plt làm ơn:
Sử dụng plt đã chỉ định làm plt ban đầu (nếu plt được tạo trong quá trình thiết lập thì các tệp
sẽ được kiểm tra tính nhất quán).

--xin vui lòng làm ơn*:
Hợp nhất các plt đã chỉ định để tạo plt ban đầu -- yêu cầu các plt phải
rời rạc (nghĩa là không có bất kỳ mô-đun nào xuất hiện trong nhiều hơn một plt). Các bạn là
được tạo theo cách thông thường:

máy lọc máu --build_plt --output_plt plt_1 files_to_include
...
máy lọc máu --build_plt --output_plt plt_n files_to_include

tập tin quay số_to_analyze --plts plt_1 ... plt_n

quả lọc máu --plts plt_1 ... plt_n -- files_to_analyze

-Cảnh báo:
Một nhóm các tùy chọn bật/tắt có chọn lọc các cảnh báo (để được trợ giúp về tên của
cảnh báo sử dụng máy lọc máu -Trợ giúp). Lưu ý rằng các tùy chọn cũng có thể được cung cấp trong tệp
với một -máy lọc máu() thuộc tính. Nhìn thấy Yêu cầu or Kìm nén Cảnh báo in nguồn Các Tập Tin
dưới đây để biết chi tiết.

--vỏ bọc:
Không tắt Erlang shell khi chạy GUI.

--phiên bản (Hoặc -v):
In phiên bản Dialyzer và một số thông tin khác rồi thoát.

--Cứu giúp (Hoặc -h):
In tin nhắn này và thoát.

--Yên lặng (Hoặc -q):
Làm cho Dialyzer yên tĩnh hơn một chút.

--dài dòng:
Làm cho Dialyzer dài dòng hơn một chút.

--số liệu thống kê:
In thông tin về tiến độ thực hiện (giai đoạn phân tích, thời gian thực hiện)
mỗi kích thước của đầu vào tương đối).

--build_plt:
Quá trình phân tích bắt đầu từ một plt trống và tạo một plt mới từ các tệp được chỉ định
với -c-r. Chỉ hoạt động đối với các tập tin chùm. Sử dụng --plt or --output_plt ghi đè lên
vị trí plt mặc định.

--add_to_plt:
plt được mở rộng để bao gồm cả các tệp được chỉ định bằng -c-r. Sử dụng --plt đến
chỉ định plt nào sẽ bắt đầu từ đó và --output_plt để chỉ định nơi đặt plt.
Lưu ý rằng phân tích có thể bao gồm các tệp từ plt nếu chúng phụ thuộc vào phiên bản mới
các tập tin. Tùy chọn này chỉ hoạt động với các tập tin chùm.

--remove_from_plt:
Thông tin từ các tập tin được chỉ định với -c-r được loại bỏ khỏi plt. Ghi chú
rằng điều này có thể gây ra việc phân tích lại các tệp phụ thuộc còn lại.

--check_plt:
Kiểm tra tính nhất quán của plt và xây dựng lại nó nếu nó chưa cập nhật.

--no_check_plt:
Bỏ qua bước kiểm tra plt khi chạy Dialyzer. Hữu ích khi làm việc với các plt đã được cài đặt
không bao giờ thay đổi.

--plt_info:
Hãy Dialyzer in thông tin về plt rồi thoát. plt có thể được chỉ định
với --plt(s).

--get_warnings:
Làm cho Dialyzer phát ra cảnh báo ngay cả khi thao tác với plt. Cảnh báo chỉ được phát ra
cho các tập tin thực sự được phân tích.

--dump_callgraph hồ sơ:
Kết xuất biểu đồ cuộc gọi vào tệp đã chỉ định có định dạng được xác định bởi tệp
phần mở rộng tên. Các tiện ích mở rộng được hỗ trợ là: raw, dot và ps. Nếu cái gì khác được sử dụng
làm phần mở rộng tên tệp, định dạng mặc định '.raw' sẽ được sử dụng.

--no_bản địa (Hoặc -nn):
Bỏ qua quá trình biên dịch mã gốc của một số tệp chính mà Dialyzer theo phương pháp heuristic
thực hiện khi thẩm tách nhiều tập tin; điều này tránh được thời gian biên dịch nhưng nó có thể dẫn đến
trong (nhiều) thời gian phân tích lâu hơn.

--no_native_cache:
Theo mặc định, Dialyzer lưu trữ kết quả biên dịch gốc trong
$XDG_CACHE_HOME/erlang/dialyzer_hipe_cache thư mục. XDG_CACHE_HOME mặc định là
$HOME/.cache. Sử dụng tùy chọn này để tắt bộ nhớ đệm.

--đường dẫn đầy đủ:
Hiển thị tên đường dẫn đầy đủ của các tệp mà cảnh báo được phát ra.

--gui:
Sử dụng GUI.

Lưu ý:
* biểu thị rằng có thể có nhiều lần xuất hiện của các tùy chọn này.

** tùy chọn -D-I hoạt động cả từ dòng lệnh và trong GUI của Dialyzer; cú pháp của
định nghĩa và bao gồm giống như được sử dụng bởi sai lầm.

Các tùy chọn cảnh báo:

-Wno_return:
Loại bỏ cảnh báo đối với các hàm sẽ không bao giờ trả về giá trị.

-Không_không sử dụng:
Ngăn chặn cảnh báo cho các chức năng không sử dụng.

-Wno_improper_lists:
Ngăn chặn các cảnh báo về việc xây dựng danh sách không phù hợp.

-Wno_fun_app:
Loại bỏ các cảnh báo về các ứng dụng thú vị sẽ bị lỗi.

-Wno_match:
Loại bỏ cảnh báo đối với các mẫu không được sử dụng hoặc không thể khớp.

-Wno_opaque:
Loại bỏ các cảnh báo về vi phạm tính không rõ ràng của các loại dữ liệu.

-Wno_fail_call:
Ngăn chặn cảnh báo về các cuộc gọi không thành công.

-Wno_hợp đồng:
Loại bỏ các cảnh báo về hợp đồng không hợp lệ.

-Wno_behaviour:
Loại bỏ các cảnh báo về lệnh gọi lại hành vi khác với khuyến nghị đã xuất bản
các giao diện.

-Wno_missing_calls:
Ngăn chặn cảnh báo về các cuộc gọi đến các chức năng bị thiếu.

-Wno_unfined_callbacks:
Ngăn chặn những cảnh báo về những hành vi không có -gọi lại thuộc tính cho họ
cuộc gọi lại.

-Wunmatched_returns***:
Bao gồm các cảnh báo cho các lệnh gọi hàm bỏ qua giá trị trả về có cấu trúc hoặc không
khớp với một trong nhiều giá trị trả về có thể có.

-Xử lý lỗi***:
Bao gồm các cảnh báo cho các hàm chỉ trả về bằng một ngoại lệ.

-Wrace_conditions***:
Bao gồm các cảnh báo về các điều kiện cuộc đua có thể xảy ra. Lưu ý rằng việc phân tích tìm thấy dữ liệu
các chủng tộc thực hiện phân tích luồng dữ liệu nội bộ theo thủ tục và đôi khi có thể bùng nổ theo thời gian.
Kích hoạt nó có nguy cơ của riêng bạn.

-Wunderspecs***:
Cảnh báo về các hàm chưa được xác định rõ (-spec hoàn toàn cho phép nhiều hơn so với
gõ thành công).

-Không rõ***:
Để cảnh báo về các chức năng và loại không xác định ảnh hưởng đến trạng thái thoát của lệnh
phiên bản dòng. Mặc định là bỏ qua các cảnh báo về các chức năng và kiểu không xác định khi
thiết lập trạng thái thoát. Khi sử dụng Dialyzer từ Erlang, cảnh báo về các thông tin không xác định
các hàm và kiểu được trả về; mặc định là không trả lại những cảnh báo này.

Các tùy chọn sau đây cũng có sẵn nhưng việc sử dụng chúng không được khuyến khích: (chúng là
chủ yếu dành cho các nhà phát triển Dialyzer và gỡ lỗi nội bộ)

-Woverspecs***:
Cảnh báo về các hàm được chỉ định quá mức (-spec hoàn toàn ít được phép hơn so với
gõ thành công).

-Wspecdiffs***:
Cảnh báo khi -spec khác với cách gõ thành công.

Lưu ý:
*** Xác định các tùy chọn bật cảnh báo thay vì tắt chúng.

SỬ DỤNG CÁC MÁY QUAY TỪ TÌM KIẾM


Bạn cũng có thể sử dụng Dialyzer trực tiếp từ Erlang. Cả GUI và phiên bản dòng lệnh
có sẵn. Các tùy chọn tương tự như những tùy chọn được đưa ra từ dòng lệnh, vì vậy vui lòng
tham khảo các phần ở trên để biết mô tả về những điều này.

YÊU CẦU OR ỨC CHẾ CẢNH BÁO IN SOURCE CÁC TẬP TIN


Sản phẩm -máy lọc máu() thuộc tính có thể được sử dụng để tắt cảnh báo trong mô-đun bằng cách chỉ định
chức năng hoặc tùy chọn cảnh báo. Ví dụ: để tắt tất cả các cảnh báo cho chức năng f / 0,
bao gồm dòng sau:

-dialyzer({nowarn_function, f/0}).

Để tắt cảnh báo cho danh sách không phù hợp, hãy thêm dòng sau vào tệp nguồn:

-dialyzer(no_improper_lists).

Sản phẩm -máy lọc máu() thuộc tính được cho phép sau khi khai báo hàm. Danh sách các tùy chọn cảnh báo
hoặc các chức năng được phép:

-dialyzer([{nowarn_function, [f/0]}, no_improper_lists]).

Tùy chọn cảnh báo có thể bị hạn chế đối với các chức năng:

-dialyzer({no_improper_lists, g/0}).

-dialyzer({[no_return, no_match], [g/0, h/0]}).

Để được trợ giúp về các tùy chọn cảnh báo, hãy sử dụng máy lọc máu -Trợ giúp. Các tùy chọn cũng được liệt kê phía dưới
(cảnh báoopts).

Lưu ý:
Sản phẩm -máy lọc máu() thuộc tính không được kiểm tra bởi Trình biên dịch Erlang mà bởi Dialyzer
chính nó.

Lưu ý:
Tùy chọn cảnh báo -Wrace_conditions không có hiệu lực khi được đặt trong tệp nguồn.

Sản phẩm -máy lọc máu() thuộc tính cũng có thể được sử dụng để bật cảnh báo. Ví dụ, nếu một
mô-đun đã được sửa về lợi nhuận không khớp, thêm dòng

-dialyzer(unmatched_returns).

có thể giúp đảm bảo rằng không có cảnh báo trả lại mới chưa từng có nào được đưa ra.

XUẤT KHẨU


gui() -> ok | {lỗi, Tin nhắn}
gui(Danh sách lựa chọn) -> ok | {lỗi, Tin nhắn}

Các loại:

OptList - xem bên dưới

Phiên bản GUI của máy lọc máu.

Danh sách chọn :: [Tùy chọn]
Tùy chọn :: {files, [Tên tệp :: string()]}
| {files_rec, [DirName :: string()]}
| {định nghĩa, [{Macro :: Atom(), Value :: term()}]}
| {từ, src_code | byte_code} %% Mặc định là byte_code
| {init_plt, FileName :: string()} %% Nếu thay đổi từ mặc định
| {plts, [FileName :: string()]} %% Nếu thay đổi từ mặc định
| {include_dirs, [DirName :: string()]}
| {output_file, FileName :: string()}
| {output_plt, FileName :: string()}
| {check_plt, boolean()},
| {analysis_type, 'succ_typings' |
'plt_add' |
'plt_build' |
'plt_check' |
'plt_remove'}
| {cảnh báo, [WarnOpts]}
| {get_warnings, bool()}

WarnOpts :: no_return
| không_không sử dụng
| no_improper_lists
| no_fun_app
| không có trận đấu
| không_đục
| không_fail_call
| không có hợp đồng
| không_hành vi
| no_unfined_callbacks
| chưa từng có_return
| xử lý lỗi
| cuộc đua_điều kiện
| quá mức
| thông số kỹ thuật dưới
| sự khác biệt
| không xác định

chạy (OptList) -> Cảnh báo

Các loại:

OptList - xem gui/0,1
Cảnh báo - xem bên dưới

Phiên bản dòng lệnh của Dialyzer.

Cảnh báo :: [{Tag, Id, Msg}]
Tag :: 'warn_behaviour'
| 'warn_bin_construction'
| 'warn_callgraph'
| 'warn_contract_not_equal'
| 'warn_contract_range'
| 'warn_contract_subtype'
| 'warn_contract_supertype'
| 'cú pháp cảnh báo_hợp đồng_'
| 'warn_contract_types'
| 'warn_failing_call'
| 'warn_fun_app'
| 'cảnh báo_khớp'
| 'warn_non_proper_list'
| 'cảnh_không_gọi'
| 'cảnh báo_opaque'
| 'warn_race_condition'
| 'warn_return_no_exit'
| 'warn_return_only_exit'
| 'warn_umatched_return'
| 'cảnh báo_không xác định_gọi lại'
| 'cảnh báo_không xác định'
Id = {File :: string(), Line :: số nguyên()}
Msg = msg() -- Không xác định

format_warning(Msg) -> dây()

Các loại:

Msg = {Tag, Id, msg()} -- Xem run/1

Nhận một chuỗi từ các cảnh báo được trả về bởi dialyzer:run/1.

plt_info(chuỗi()) -> {'Được rồi', [{nguyên tử(), bất kì()}]} | {'lỗi', nguyên tử()}

Trả về thông tin về plt đã chỉ định.

Sử dụng quả lọc trực tuyến bằng dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

Ad