dialyseur - En ligne dans le Cloud

Il s'agit du dialyseur de commandes qui peut être exécuté dans le fournisseur d'hébergement gratuit OnWorks à l'aide de l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS.

PROGRAMME:

Nom


dialyseur - Le Dialyseur, un analyseur de discordance pour les programmes ERlang

DESCRIPTION


Le Dialyzer est un outil d'analyse statique qui identifie les écarts logiciels tels que
erreurs de type défini, code qui est devenu mort ou inaccessible en raison d'une certaine programmation
erreur, tests inutiles, etc. dans des modules Erlang uniques ou des (ensembles d') applications entières.
Dialyzer démarre son analyse soit à partir du bytecode BEAM compilé pour le débogage, soit à partir d'Erlang
code source. Le numéro de fichier et de ligne d'une divergence est signalé avec un
indication de l'origine de l'écart. Dialyser fonde son analyse sur le concept de
des frappes réussies qui permettent des avertissements sonores (pas de faux positifs).

En savoir plus sur Dialyzer et sur la façon de l'utiliser à partir de l'interface graphique dans Dialyseur Utilisateurs Guide.

EN UTILISANT L' DIALYSEUR De L' COMMAND LINE


Dialyzer dispose également d'une version en ligne de commande pour une utilisation automatisée. Ci-dessous une brève description
de la liste de ses options. Les mêmes informations peuvent être obtenues en écrivant

dialyseur --help

dans une coquille. Veuillez vous référer à la description de l'interface graphique pour plus de détails sur le fonctionnement de
Dialyseur.

L'état de sortie de la version en ligne de commande est :

0 - Aucun problème n'a été rencontré lors de l'analyse et aucun
des avertissements ont été émis.
1 - Des problèmes ont été rencontrés lors de l'analyse.
2 - Aucun problème n'a été rencontré, mais des avertissements ont été émis.

Usage:

dialyseur [--help] [--version] [--shell] [--quiet] [--verbose]
[-pa dir]* [--plt plt] [--plts plt*] [-Ddefine]*
[-I include_dir]* [--output_plt fichier] [-Wwarn]* [--raw]
[--src] [--gui] [fichiers_ou_répertoires] [-r répertoires]
[--apps applications] [-o fichier de sortie]
[--build_plt] [--add_to_plt] [--remove_from_plt]
[--check_plt] [--no_check_plt] [--plt_info] [--get_warnings]
[--dump_callgraph fichier] [--no_native] [--fullpath]
[--statistiques] [--no_native_cache]

Options:

fichiers_ou_répertoires (pour la rétrocompatibilité aussi comme : -c fichiers_ou_répertoires):
Utilisez Dialyzer à partir de la ligne de commande pour détecter les défauts dans les fichiers spécifiés ou
répertoires contenant .erl or .rayonner selon le type d'analyse.

-r dirs:
Identique au précédent mais les répertoires spécifiés sont recherchés récursivement pour
sous-répertoires contenant .erl or .rayonner fichiers qu'ils contiennent, selon le type de
analyse.

--applications applications:
Option généralement utilisée lors de la construction ou de la modification d'un plt comme dans :

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

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

-o fichier de sortie (ou --output fichier de sortie):
Lorsque vous utilisez Dialyzer à partir de la ligne de commande, envoyez les résultats de l'analyse au
outfile plutôt que stdout.

--cru:
Lorsque vous utilisez Dialyzer à partir de la ligne de commande, affichez les résultats d'analyse bruts (Erlang
termes) au lieu du résultat formaté. Le format brut est plus facile à post-traiter (par
par exemple, pour filtrer les avertissements ou pour afficher des pages HTML).

--src:
Remplacer la valeur par défaut, qui consiste à analyser les fichiers BEAM, et analyser à partir d'Erlang
code source à la place.

-Dnom (ou -Dname=valeur):
Lors de l'analyse à partir de la source, transmettez la définition à Dialyzer. (**)

-I rép_include:
Lors de l'analyse à partir de la source, passez le rép_include au dialyseur. (**)

-Pennsylvanie dir:
Inclure dir dans le chemin d'Erlang (utile lors de l'analyse de fichiers qui ont
'-include_lib()' directives).

--output_plt filet:
Stockez le plt dans le fichier spécifié après l'avoir construit.

--plt plt:
Utilisez le plt spécifié comme plt initial (si le plt a été généré lors de la configuration, les fichiers
sera vérifiée pour la cohérence).

--plts svp*:
Fusionner les plts spécifiés pour créer le plt initial -- nécessite que les plts soient
disjoint (c'est-à-dire qu'aucun module n'apparaît dans plus d'un plt). Les plts sont
créé de la manière habituelle :

dialyseur --build_plt --output_plt plt_1 files_to_include

dialyseur --build_plt --output_plt plt_n files_to_include

dialyseur files_to_analyze --plts plt_1 ... plt_n

dialyseur --plts plt_1 ... plt_n -- files_to_analyze

-Waver:
Une famille d'options qui activent/désactivent sélectivement les avertissements (pour obtenir de l'aide sur les noms des
avertissements utilisation dialyseur -Petit). A noter que les options peuvent aussi être données dans le fichier
avec -dialyseur() attribut. Voir Demander or Supprimer Avertissements in Source Fichiers
ci-dessous pour plus de détails.

--coquille:
Ne désactivez pas le shell Erlang lors de l'exécution de l'interface graphique.

--version (ou -v):
Imprimez la version du Dialyseur et quelques informations supplémentaires et quittez.

--Aidez-moi (ou -h):
Imprimez ce message et quittez.

--silencieux (ou -q):
Rendez le dialyseur un peu plus silencieux.

--verbeux:
Rendez Dialyzer un peu plus verbeux.

--statistiques:
Imprime des informations sur l'avancement de l'exécution (phases d'analyse, temps passé en
chacun et la taille de l'entrée relative).

--build_plt:
L'analyse part d'un plt vide et en crée un nouveau à partir des fichiers spécifiés
avec -c ainsi que -r. Ne fonctionne que pour les fichiers de poutre. Utilisation --plt or --output_plt pour outrepasser le
emplacement plt par défaut.

--add_to_plt:
Le plt est étendu pour inclure également les fichiers spécifiés avec -c ainsi que -r. utilisation --plt à
spécifier de quel plt commencer, et --output_plt pour spécifier où mettre le plt.
Notez que l'analyse peut inclure des fichiers du plt s'ils dépendent du nouveau
des dossiers. Cette option ne fonctionne qu'avec les fichiers de poutre.

--remove_from_plt:
Les informations des fichiers spécifiés avec -c ainsi que -r est retiré de la plt. Noter
que cela peut entraîner une nouvelle analyse des fichiers dépendants restants.

--check_plt:
Vérifiez la cohérence du fichier plt et reconstruisez-le s'il n'est pas à jour.

--no_check_plt:
Ignorez la vérification plt lors de l'exécution de Dialyzer. Utile lorsque vous travaillez avec des plts installés qui
ne change jamais.

--info_plt:
Faites en sorte que Dialyzer imprime des informations sur le plt, puis quittez. Le plt peut être spécifié
avec --plt(s).

--get_warnings:
Faire en sorte que Dialyzer émette des avertissements même lors de la manipulation du plt. Les avertissements ne sont émis que
pour les fichiers qui sont réellement analysés.

--dump_callgraph filet:
Vider le graphique d'appels dans le fichier spécifié dont le format est déterminé par le fichier
extension de nom. Les extensions prises en charge sont : raw, dot et ps. Si autre chose est utilisé
comme extension de nom de fichier, le format par défaut '.raw' sera utilisé.

--no_native (ou -nn):
Contourner la compilation de code natif de certains fichiers clés que Dialyzer de manière heuristique
s'exécute lors de la dialyse de nombreux fichiers ; cela évite le temps de compilation mais il peut en résulter
en un temps d'analyse (beaucoup) plus long.

--no_native_cache:
Par défaut, Dialyzer met en cache les résultats de la compilation native dans le
$XDG_CACHE_HOME/erlang/dialyzer_hipe_cache répertoire. XDG_CACHE_HOME Par défaut
$HOME/.cache. Utilisez cette option pour désactiver la mise en cache.

--chemin complet:
Affichez les noms de chemin complets des fichiers pour lesquels des avertissements sont émis.

--gui:
Utilisez l'interface graphique.

Attention:
* indique que plusieurs occurrences de ces options sont possibles.

** option -D ainsi que -I travailler à la fois à partir de la ligne de commande et dans l'interface graphique de Dialyzer ; la syntaxe de
définit et inclut est le même que celui utilisé par erlc.

Options d'avertissement :

-Wno_retour:
Supprimez les avertissements pour les fonctions qui ne renverront jamais de valeur.

-Wno_inutilisé:
Supprimer les avertissements pour les fonctions inutilisées.

-Wno_improper_lists:
Supprimer les avertissements pour la construction de listes incorrectes.

-Wno_fun_app:
Supprimez les avertissements pour les applications amusantes qui échoueront.

-Wno_match:
Supprimez les avertissements pour les modèles qui ne sont pas utilisés ou ne peuvent pas correspondre.

-Wno_opaque:
Supprimer les avertissements pour les violations d'opacité des types de données.

-Wno_fail_call:
Supprimer les avertissements pour les appels en échec.

-Wno_contrats:
Supprimer les avertissements concernant les contrats non valides.

-Wno_behaviors:
Supprimer les avertissements concernant les rappels de comportement qui s'écartent des recommandations publiées
interfaces.

-Wno_missing_calls:
Supprimer les avertissements concernant les appels aux fonctions manquantes.

-Wno_undefined_callbacks:
Supprimer les avertissements concernant les comportements qui n'ont pas -rappeler attributs pour leur
rappels.

-Wunmatched_returns*** :
Inclure des avertissements pour les appels de fonction qui ignorent une valeur de retour structurée ou ne
correspond à l'une des nombreuses valeurs de retour possibles.

-Werror_handling*** :
Incluez des avertissements pour les fonctions qui ne renvoient qu'au moyen d'une exception.

-Wrace_conditions*** :
Inclure des avertissements pour les conditions de course possibles. Notez que l'analyse qui trouve des données
races effectue des analyses de flux de données intra-procédurales et peut parfois exploser dans le temps.
Activez-le à vos risques et périls.

-Wunderspecs*** :
Avertir des fonctions sous-spécifiées (le -spec est strictement plus autorisant que le
dactylographie réussie).

-Inconnu*** :
Laisser les avertissements sur les fonctions et les types inconnus affecter l'état de sortie de la commande
version en ligne. La valeur par défaut est d'ignorer les avertissements concernant les fonctions et les types inconnus lorsque
réglage de l'état de sortie. Lors de l'utilisation du dialyseur d'Erlang, les avertissements concernant l'inconnu
les fonctions et les types sont renvoyés ; la valeur par défaut est de ne pas renvoyer ces avertissements.

Les options suivantes sont également disponibles mais leur utilisation est déconseillée : (elles sont
principalement pour les développeurs de Dialyzer et le débogage interne)

-Woverspecs*** :
Avertir des fonctions trop spécifiées (le -spec est strictement moins autorisé que le
dactylographie réussie).

-Wspecdiffs*** :
Avertir lorsque le -spec est différent de la saisie réussie.

Attention:
*** Identifie les options qui activent les avertissements au lieu de les désactiver.

EN UTILISANT L' DIALYSEUR De ERLAN


Vous pouvez également utiliser Dialyzer directement depuis Erlang. Les versions GUI et ligne de commande
sont disponibles. Les options sont similaires à celles données à partir de la ligne de commande, veuillez donc
reportez-vous aux sections ci-dessus pour une description de ceux-ci.

DEMANDE OR SUPPRESSION MISES EN GARDE IN SOURCE DES DOSSIERS


Notre -dialyseur() L'attribut peut être utilisé pour désactiver les avertissements dans un module en spécifiant
fonctions ou options d'avertissement. Par exemple, pour désactiver tous les avertissements de la fonction f / 0,
inclure la ligne suivante :

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

Pour désactiver les avertissements pour les listes incorrectes, ajoutez la ligne suivante au fichier source :

-dialyseur (no_improper_lists).

Notre -dialyseur() L'attribut est autorisé après les déclarations de fonction. Listes des options d'avertissement
ou les fonctions sont autorisées :

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

Les options d'avertissement peuvent être limitées aux fonctions :

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

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

Pour obtenir de l'aide sur les options d'avertissement, utilisez dialyseur -Petit. Les options sont également énumérées ci-dessous
(Avertir).

Attention:
Notre -dialyseur() l'attribut n'est pas vérifié par le compilateur Erlang, mais par le dialyseur
elle-même.

Attention:
L'option d'avertissement -Wrace_conditions n'a aucun effet lorsqu'il est défini dans les fichiers source.

Notre -dialyseur() L'attribut peut également être utilisé pour activer les avertissements. Par exemple, si un
le module a été corrigé concernant les retours sans correspondance, en ajoutant la ligne

-dialyseur(unmatched_returns).

peut aider à garantir qu'aucun nouvel avertissement de retour sans correspondance n'est introduit.

Les exportations


gui() -> ok | {Erreur, Message}
gui(OptListe) -> ok | {Erreur, Message}

Types:

OptList -- voir ci-dessous

Version de l'interface graphique du dialyseur.

Liste d'options :: [Option]
Option :: {fichiers, [Nom du fichier :: chaîne()]}
| {files_rec, [DirName :: string()]}
| {définit, [{Macro :: atome(), Valeur :: terme()}]}
| {de, src_code | byte_code} %% Par défaut, byte_code
| {init_plt, FileName :: string()} %% Si modifié par défaut
| {plts, [FileName :: string()]} %% Si modifié par défaut
| {include_dirs, [DirName :: chaîne()]}
| {fichier_sortie, nom_fichier :: chaîne()}
| {output_plt, FileName :: string()}
| {check_plt, booléen()},
| {analysis_type, 'succ_typings' |
'plt_add' |
'plt_build' |
'plt_check' |
'plt_remove'}
| {avertissements, [WarnOpts]}
| {get_warnings, booléen()}

WarnOpts :: no_return
| non_inutilisé
| no_improper_lists
| no_fun_app
| aucune concordance
| non_opaque
| no_fail_call
| aucun_contrat
| pas_de_comportements
| no_undefined_callbacks
| retours_incomparables
| la gestion des erreurs
| conditions de course
| sur-spec
| sous-specifiques
| spécifications
| inconnu

exécuter (OptList) -> Avertissements

Types:

OptList -- voir gui/0,1
Avertissements -- voir ci-dessous

Version en ligne de commande du dialyseur.

Avertissements :: [{Tag, Id, Msg}]
Étiquette :: '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_call'
| 'warn_opaque'
| 'warn_race_condition'
| 'warn_return_no_exit'
| 'warn_return_only_exit'
| 'warn_umatched_return'
| 'warn_undefined_callbacks'
| 'warn_unknown'
Id = {Fichier :: chaîne(), Ligne :: entier()}
Msg = msg() -- Non défini

format_warning(Message) -> chaîne de caractères()

Types:

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

Obtenez une chaîne à partir des avertissements renvoyés par dialyzer:run/1.

plt_info(chaîne()) -> {'d'accord', [{atome(), tout()}]} | {'Erreur', atome()}

Renvoie des informations sur le plt spécifié.

Utiliser le dialyseur en ligne à l'aide des services onworks.net



Derniers programmes en ligne Linux et Windows