Dies ist der Befehlsdialyzer, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
dialyzer – Der Dialyzer, ein DISkrepanzanalysator für ERlang-Programme
BESCHREIBUNG
Der Dialyzer ist ein statisches Analysetool, das Software-Diskrepanzen identifiziert, wie z
Eindeutige Typfehler, Code, der aufgrund einer Programmierung tot oder nicht mehr erreichbar ist
Fehler, unnötige Tests usw. in einzelnen Erlang-Modulen oder ganzen (Gruppen von) Anwendungen.
Dialyzer beginnt seine Analyse entweder mit debugkompiliertem BEAM-Bytecode oder mit Erlang
Quellcode. Die Datei- und Zeilennummer einer Diskrepanz wird zusammen mit einem gemeldet
Hinweis darauf, worum es bei der Diskrepanz geht. Dialyzer basiert seine Analyse auf dem Konzept von
Erfolgseingaben, die akustische Warnungen ermöglichen (keine Fehlalarme).
Weitere Informationen zu Dialyzer und seiner Verwendung über die GUI finden Sie unter Dialysator Benutzer Guide.
VERWENDUNG DIALYZER AB COMMAND LINE
Dialyzer verfügt auch über eine Befehlszeilenversion für die automatisierte Nutzung. Nachfolgend finden Sie eine kurze Beschreibung
der Liste seiner Optionen. Die gleichen Informationen können auch schriftlich eingeholt werden
Dialysator – Hilfe
in einer Muschel. Weitere Einzelheiten zur Bedienung finden Sie in der GUI-Beschreibung
Dialysator.
Der Exit-Status der Befehlszeilenversion ist:
0 – Bei der Analyse sind keine Probleme aufgetreten und nein
Warnungen wurden ausgegeben.
1 - Während der Analyse sind Probleme aufgetreten.
2 – Es sind keine Probleme aufgetreten, es wurden jedoch Warnungen ausgegeben.
Verwendung:
Dialysator [--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]
[--apps Anwendungen] [-o Ausgabedatei]
[--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]
Option:
files_or_dirs (aus Gründen der Abwärtskompatibilität auch als: -c files_or_dirs):
Verwenden Sie Dialyzer über die Befehlszeile, um Fehler in den angegebenen Dateien zu erkennen oder
Verzeichnisse mit .erl or .Strahl Dateien, abhängig von der Art der Analyse.
-r dirs:
Wie zuvor, jedoch werden die angegebenen Verzeichnisse rekursiv durchsucht
Unterverzeichnisse enthalten .erl or .Strahl Dateien darin, abhängig von der Art der
Analyse.
- Apps Anwendungen:
Option, die normalerweise beim Erstellen oder Ändern eines Plt verwendet wird, wie in:
dialyzer --build_plt --apps erts kernel stdlib mnesia ...
dialyzer --apps inets ssl ./ebin ../other_lib/ebin/my_module.beam
-o Outfile (oder --Ausgabe Outfile):
Wenn Sie Dialyzer über die Befehlszeile verwenden, senden Sie die Analyseergebnisse an die angegebene Adresse
outfile statt nach stdout.
--roh:
Wenn Sie Dialyzer über die Befehlszeile verwenden, geben Sie die Rohanalyseergebnisse aus (Erlang
Begriffe) anstelle des formatierten Ergebnisses. Das Rohformat lässt sich einfacher nachbearbeiten (z
(z. B. zum Filtern von Warnungen oder zum Ausgeben von HTML-Seiten).
--src:
Überschreiben Sie die Standardeinstellung, die darin besteht, BEAM-Dateien zu analysieren und von Erlang aus zu analysieren
stattdessen den Quellcode.
-Dname (oder -Dname=Wert):
Übergeben Sie bei der Analyse aus der Quelle die Definition an Dialyzer. (**)
-I include_dir:
Übergeben Sie bei der Analyse aus der Quelle die include_dir zum Dialysator. (**)
-pa dir:
Umfassen dir im Pfad für Erlang (nützlich bei der Analyse von Dateien mit
'-include_lib()' Richtlinien).
--output_plt Datei:
Speichern Sie die PLT nach der Erstellung in der angegebenen Datei.
--plt plt:
Verwenden Sie die angegebene PLT als anfängliche PLT (sofern die PLT während der Einrichtung der Dateien erstellt wurde).
wird auf Konsistenz geprüft).
--plts plt*:
Führen Sie die angegebenen Plts zusammen, um das anfängliche Plt zu erstellen. Dies erfordert, dass die Plts vorhanden sind
disjunkt (dh es darf kein Modul in mehr als einem Plt vorkommen). Die Plts sind
wie gewohnt erstellt:
dialyzer --build_plt --output_plt plt_1 files_to_include
...
dialyzer --build_plt --output_plt plt_n files_to_include
dialyzer files_to_analyze --plts plt_1 ... plt_n
dialyzer --plts plt_1 ... plt_n --files_to_analyze
-Warnung:
Eine Familie von Optionen, die Warnungen selektiv ein-/ausschalten (für Hilfe zu den Namen von
Warnungen verwenden Dialysator -Welpe). Beachten Sie, dass die Optionen auch in der Datei angegeben werden können
mit einem -dialyzer() Attribut. Sehen Anfordern or Unterdrücken Warnungen in Quelle Mappen
unten für Details.
--Schale:
Deaktivieren Sie die Erlang-Shell nicht, während Sie die GUI ausführen.
--Version (oder -v):
Drucken Sie die Dialyzer-Version und einige weitere Informationen aus und beenden Sie den Vorgang.
--help (oder -h):
Drucken Sie diese Nachricht und beenden Sie den Vorgang.
--ruhig (oder -q):
Machen Sie den Dialysator etwas leiser.
- ausführlich:
Machen Sie Dialyzer etwas ausführlicher.
--Statistiken:
Druckt Informationen über den Fortschritt der Ausführung (Analysephasen, aufgewendete Zeit).
jeweils und Größe der relativen Eingabe).
--build_plt:
Die Analyse beginnt mit einem leeren Plt und erstellt aus den angegebenen Dateien ein neues
mit -c und -r. Funktioniert nur für Balkendateien. Verwenden --plt or --output_plt die überschreiben
Standard-PLT-Speicherort.
--add_to_plt:
Der PLT wird um die mit angegebenen Dateien erweitert -c und -r. Benutzen --plt zu
Geben Sie an, von welchem Plt aus begonnen werden soll, und --output_plt um anzugeben, wo das Plt abgelegt werden soll.
Beachten Sie, dass die Analyse möglicherweise Dateien aus dem PLT umfasst, wenn diese vom Neuen abhängen
Dateien. Diese Option funktioniert nur mit Balkendateien.
--remove_from_plt:
Die Informationen aus den mit angegebenen Dateien -c und -r wird aus dem Plt entfernt. Notiz
dass dies zu einer erneuten Analyse der verbleibenden abhängigen Dateien führen kann.
--check_plt:
Überprüfen Sie die PLT auf Konsistenz und erstellen Sie sie neu, wenn sie nicht aktuell ist.
--no_check_plt:
Überspringen Sie die Plt-Prüfung, wenn Sie Dialyzer ausführen. Nützlich bei der Arbeit mit installierten Plts
nie ändern.
--plt_info:
Lassen Sie Dialyzer Informationen über den PLT drucken und beenden Sie ihn dann. Der Plt kann angegeben werden
mit --plt(s).
--get_warnings:
Sorgen Sie dafür, dass der Dialysator Warnungen ausgibt, auch wenn der Plt manipuliert wird. Es werden nur Warnungen ausgegeben
für Dateien, die tatsächlich analysiert werden.
--dump_callgraph Datei:
Speichern Sie das Aufrufdiagramm in der angegebenen Datei, deren Format durch die Datei bestimmt wird
Namenserweiterung. Unterstützte Erweiterungen sind: raw, dot und ps. Wenn etwas anderes verwendet wird
Als Dateinamenerweiterung wird das Standardformat „.raw“ verwendet.
--no_native (oder -nn):
Umgehen Sie die native Codekompilierung einiger Schlüsseldateien, die Dialyzer heuristisch durchführt
führt bei der Dialyse vieler Dateien durch; Dies vermeidet die Kompilierungszeit, kann aber dazu führen
in (viel) längerer Analysezeit.
--no_native_cache:
Standardmäßig speichert Dialyzer die Ergebnisse der nativen Kompilierung im Cache
$XDG_CACHE_HOME/erlang/dialyzer_hipe_cache Verzeichnis. XDG_CACHE_HOME Standardmäßig ist
$HOME/.cache. Verwenden Sie diese Option, um das Caching zu deaktivieren.
--vollständigen Pfad:
Zeigt die vollständigen Pfadnamen der Dateien an, für die Warnungen ausgegeben werden.
--gui:
Verwenden Sie die GUI.
Hinweis:
* bedeutet, dass mehrere Vorkommen dieser Optionen möglich sind.
** Optionen -D und -I Arbeiten Sie sowohl über die Befehlszeile als auch in der Dialyzer-GUI. die Syntax von
definiert und einschließt ist das gleiche wie das, das von verwendet wird erlc.
Warnmöglichkeiten:
-Wno_return:
Unterdrücken Sie Warnungen für Funktionen, die niemals einen Wert zurückgeben.
-Wno_unused:
Unterdrücken Sie Warnungen für nicht verwendete Funktionen.
-Wno_improper_lists:
Unterdrücken Sie Warnungen wegen der Erstellung falscher Listen.
-Wno_fun_app:
Unterdrücken Sie Warnungen für unterhaltsame Anwendungen, die fehlschlagen.
-Wno_match:
Unterdrücken Sie Warnungen für Muster, die nicht verwendet werden oder nicht übereinstimmen können.
-Wno_opaque:
Unterdrücken Sie Warnungen bei Verstößen gegen die Undurchsichtigkeit von Datentypen.
-Wno_fail_call:
Unterdrücken Sie Warnungen für fehlgeschlagene Anrufe.
-Wno_contracts:
Unterdrücken Sie Warnungen vor ungültigen Verträgen.
-Wno_behaviours:
Unterdrücken Sie Warnungen zu Verhaltensrückrufen, die von den veröffentlichten Empfehlungen abweichen
Schnittstellen.
-Wno_missing_calls:
Unterdrücken Sie Warnungen über Aufrufe fehlender Funktionen.
-Wno_undefinierte_Rückrufe:
Unterdrücken Sie Warnungen vor Verhaltensweisen, für die es keine gibt -zurückrufen Attribute für ihre
Rückrufe.
-Wunmatched_returns***:
Fügen Sie Warnungen für Funktionsaufrufe ein, die einen strukturierten Rückgabewert ignorieren oder nicht
Übereinstimmung mit einem von vielen möglichen Rückgabewerten.
-Werror_handling***:
Fügen Sie Warnungen für Funktionen ein, die nur aufgrund einer Ausnahme zurückkehren.
-Wrace_conditions***:
Fügen Sie Warnungen zu möglichen Rennbedingungen hinzu. Beachten Sie, dass die Analyse Daten findet
Races führt eine intraprozedurale Datenflussanalyse durch und kann manchmal mit der Zeit explodieren.
Die Aktivierung erfolgt auf eigenes Risiko.
-Wunderspecs***:
Warnen Sie vor unterspezifizierten Funktionen (die -spec ist grundsätzlich zulässiger als die
Erfolg beim Tippen).
-Wunknown***:
Lassen Sie Warnungen über unbekannte Funktionen und Typen den Exit-Status des Befehls beeinflussen
Linienversion. Standardmäßig werden Warnungen zu unbekannten Funktionen und Typen ignoriert, wenn
Festlegen des Exit-Status. Bei Verwendung des Dialyzers von Erlang werden Warnungen vor unbekannt angezeigt
Funktionen und Typen werden zurückgegeben; Standardmäßig werden diese Warnungen nicht zurückgegeben.
Die folgenden Optionen sind ebenfalls verfügbar, ihre Verwendung wird jedoch nicht empfohlen: (Sie sind vorhanden
hauptsächlich für Dialyzer-Entwickler und internes Debugging)
-Woverspecs***:
Warnung vor überspezifizierten Funktionen (die -spec ist streng weniger zulässig als die
Erfolg beim Tippen).
-WSpezifikationen***:
Warnen Sie, wenn die -spec von der Erfolgstypisierung abweicht.
Hinweis:
*** Identifiziert Optionen, die Warnungen aktivieren, anstatt sie zu deaktivieren.
VERWENDUNG DIALYZER AB ERLAN
Sie können Dialyzer auch direkt von Erlang aus verwenden. Sowohl die GUI- als auch die Befehlszeilenversion
stehen zur Verfügung. Die Optionen ähneln denen, die über die Befehlszeile angezeigt werden, also bitte
Eine Beschreibung hierzu finden Sie in den obigen Abschnitten.
ANFRAGE OR UNTERDRÜCKEN HINWEISE IN SOURCE DATEIEN
Das -dialyzer() Das Attribut kann zum Deaktivieren von Warnungen in einem Modul durch Angabe verwendet werden
Funktionen oder Warnmöglichkeiten. Zum Beispiel, um alle Warnungen für die Funktion auszuschalten f / 0,
Fügen Sie die folgende Zeile ein:
-dialyzer({nowarn_function, f/0}).
Um Warnungen für falsche Listen zu deaktivieren, fügen Sie der Quelldatei die folgende Zeile hinzu:
-dialyzer(no_improper_lists).
Das -dialyzer() Das Attribut ist nach Funktionsdeklarationen zulässig. Listen mit Warnoptionen
oder Funktionen sind erlaubt:
-dialyzer([{nowarn_function, [f/0]}, no_improper_lists]).
Warnmöglichkeiten können auf Funktionen beschränkt werden:
-dialyzer({no_improper_lists, g/0}).
-dialyzer({[no_return, no_match], [g/0, h/0]}).
Für Hilfe zu den Warnoptionen verwenden Sie Dialysator -Welpe. Die Optionen werden ebenfalls aufgelistet unten
(WarnOpts).
Hinweis:
Das -dialyzer() Das Attribut wird nicht vom Erlang-Compiler, sondern vom Dialyzer überprüft
sich.
Hinweis:
Die Warnoption -Wrace_conditions hat keine Auswirkung, wenn es in Quelldateien festgelegt wird.
Das -dialyzer() Das Attribut kann auch zum Aktivieren von Warnungen verwendet werden. Wenn zum Beispiel a
Das Modul bezüglich nicht übereinstimmender Rückgaben wurde korrigiert und die Zeile hinzugefügt
-dialyzer(unmatched_returns).
kann dazu beitragen, sicherzustellen, dass keine neuen, nicht übereinstimmenden Rückgabewarnungen eingeführt werden.
EXPORTE
gui() -> ok | {Error, Nachricht}
gui(OptList) -> ok | {Error, Nachricht}
Arten:
OptList – siehe unten
Dialysator-GUI-Version.
OptList :: [Option]
Option :: {files, [Dateiname :: string()]}
| {files_rec, [Verzeichnisname :: string()]}
| {defines, [{Macro :: atom(), Value :: term()}]}
| {from, src_code | byte_code} %% Standardmäßig ist byte_code
| {init_plt, FileName :: string()} %% Wenn vom Standard geändert
| {plts, [FileName :: string()]} %% Wenn vom Standard geändert
| {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'}
| {Warnungen, [WarnOpts]}
| {get_warnings, bool()}
WarnOpts :: no_return
| no_unused
| no_improper_lists
| no_fun_app
| keine Übereinstimmung
| no_opaque
| no_fail_call
| keine_Verträge
| no_behaviours
| keine_undefinierten_Rückrufe
| unmatched_returns
| Fehlerbehandlung
| Rennbedingungen
| Überspezifikationen
| Unterspezifikationen
| specdiffs
| Unbekannt
run(OptList) -> Warnungen
Arten:
OptList – siehe gui/0,1
Warnungen – siehe unten
Dialyzer-Befehlszeilenversion.
Warnungen :: [{Tag, Id, Msg}]
Tag:: 'warn_behaviour'
| 'warn_bin_construction'
| 'warn_callgraph'
| 'warn_contract_not_equal'
| 'warn_contract_range'
| 'warn_contract_subtype'
| 'warn_contract_supertype'
| 'warn_contract_syntax'
| 'warn_contract_types'
| 'warn_failing_call'
| 'warn_fun_app'
| 'warn_matching'
| 'warn_non_proper_list'
| 'warn_not_called'
| 'warn_opaque'
| 'warn_race_condition'
| 'warn_return_no_exit'
| 'warn_return_only_exit'
| 'warn_umatched_return'
| 'warn_undefinierte_Rückrufe'
| 'warn_unknown'
Id = {File :: string(), Line :: integer()}
Msg = msg() – Undefiniert
format_warning(Msg) -> Zeichenfolge()
Arten:
Msg = {Tag, Id, msg()} – Siehe run/1
Rufen Sie eine Zeichenfolge aus Warnungen ab, die von dialyzer:run/1 zurückgegeben werden.
plt_info(string()) -> {'OK', [{Atom(), beliebig()}]} | {'Fehler', Atom()}
Gibt Informationen über den angegebenen Plt zurück.
Nutzen Sie den Dialysator online über die Dienste von onworks.net