זהו דיאליזטור הפקודות שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.
תָכְנִית:
שֵׁם
דיאלייזר - הדיאלייזר, מנתח אי-התאמות עבור תוכניות ERlang
תיאור
הדיאלייזר הוא כלי ניתוח סטטי המזהה פערים בתוכנה כגון
שגיאות סוג מוגדרות, קוד שהפך מת או בלתי נגיש עקב תכנות כלשהו
שגיאות, בדיקות מיותרות וכו' במודולי Erlang בודדים או ב(קבוצות) יישומים שלמים.
דיאליזר מתחיל את הניתוח שלו מקוד בייט BEAM שעבר קומפילציה של ניפוי שגיאות או מ-Erlang
קוד מקור. מספר הקובץ והשורה של אי התאמה מדווחים יחד עם
אינדיקציה למהות הפער. דיאליזר מבססת את הניתוח שלה על מושג ה-
הקלדות מוצלחות המאפשרות אזהרות קוליות (ללא תוצאות חיוביות שגויות).
קרא עוד על Dialyzer וכיצד להשתמש בו דרך ממשק המשתמש הגרפי ב דיאליזר של המשתמש להדריך.
משתמש LA דיאליזטור מן LA פקודה קו
לדיאליזר יש גם גרסת שורת פקודה לשימוש אוטומטי. להלן תיאור קצר
של רשימת האפשרויות שלה. ניתן לקבל את אותו מידע על ידי כתיבה
דיאליזר --עזרה
במעטפת. אנא עיינו בתיאור ממשק המשתמש הגרפי לקבלת פרטים נוספים על פעולתו של
דיאליזטור.
סטטוס היציאה של גרסת שורת הפקודה הוא:
0 - לא נתקלו בבעיות במהלך הניתוח ולא
נשלחו אזהרות.
1 - נתקלו בבעיות במהלך הניתוח.
2 - לא נתקלו בבעיות, אך הופעלו אזהרות.
נוֹהָג:
דיאליזר [--עזרה] [--גרסה] [--shell] [--שקט] [--verbose]
[-pa dir]* [--plt plt] [--plts plt*] [-Ddefine]*
[-אני כולל_קובץ]* [--קובץ_output_plt] [--Wwarn]* [--raw]
[--src] [--gui] [קבצים_או_תיקיות] [-r תיקיות]
[--apps יישומים] [-o קובץ יציאה]
[--build_plt] [--add_to_plt] [--remove_from_plt]
[--check_plt] [--no_check_plt] [--plt_info] [--get_warnings]
[--dump_callgraph file] [--no_native] [--fullpath]
[--סטטיסטיקות] [--no_native_cache]
אפשרויות:
קבצים_או_תיקיות (לתאימות לאחור גם כ: -c קבצים_או_תיקיות):
השתמש ב-Dialyzer משורת הפקודה כדי לזהות פגמים בקבצים שצוינו או
ספריות המכילות .erl or .קֶרֶן קבצים, בהתאם לסוג הניתוח.
-r דירס:
כמו הקודם, אך הספריות שצוינו מתבצעות באופן רקורסיבי
ספריות משנה המכילות .erl or .קֶרֶן קבצים בהם, בהתאם לסוג
אָנָלִיזָה.
--אפליקציות יישומים:
אפשרות המשמשת בדרך כלל בעת בנייה או שינוי של מתווה כמו ב:
דיאליזר --build_plt --apps erts ליבה stdlib mnesia ...
דיאליזר --אפליקציות inets ssl ./ebin ../other_lib/ebin/my_module.beam
-o אוסף (אוֹ --תְפוּקָה אוסף):
בעת שימוש ב-Dialyzer משורת הפקודה, יש לשלוח את תוצאות הניתוח אל השרת שצוין.
outfile במקום ל-stdout.
--גלם:
בעת שימוש ב-Dialyzer משורת הפקודה, יש להפיק את תוצאות הניתוח הגולמיות (Erlang
מונחים) במקום התוצאה המעוצבת. הפורמט הגולמי קל יותר לעיבוד לאחר מכן (לדוגמה
לדוגמה, כדי לסנן אזהרות או להפיק דפי HTML).
--src:
עקוף את ברירת המחדל, שהיא ניתוח קבצי BEAM, וניתוח החל מ-Erlang
קוד מקור במקום זאת.
-שם שם (אוֹ -Dname=ערך):
בעת ניתוח מהמקור, יש להעביר את ההגדרה ל-Dialyzer. (**)
-I include_dir:
בעת ניתוח מהמקור, יש להעביר את include_dir לדיאלייזר. (**)
-אבא dir:
לכלול dir בנתיב עבור Erlang (שימושי בעת ניתוח קבצים שיש להם
'-include_lib()' הנחיות).
--פלט_פלט פילה:
אחסן את ה-plt בקובץ שצוין לאחר בנייתו.
--חלק חלק:
השתמש בקובץ ה-plt שצוין כקובץ ה-plt ההתחלתי (אם ה-plt נבנה במהלך ההתקנה, הקבצים
ייבדק עקביות).
--פלטים שטח*:
מיזוג ה-plts שצוינו כדי ליצור את ה-plt הראשוני -- דורש שה-plts יהיו
לא קשור (כלומר, אין מודול המופיע ביותר מ-plt אחד). ה-plts הם
נוצר בצורה הרגילה:
דיאליזר --build_plt --output_plt plt_1 קבצים_לכלול
...
דיאליזר --build_plt --output_plt plt_n קבצים_לכלול
דיאליזר files_to_analyze --plts plt_1 ... plt_n
דיאליזר --plts plt_1 ... plt_n -- קבצים_לניתוח
אזהרה:
משפחה של אפשרויות אשר מפעילות/מכבות באופן סלקטיבי אזהרות (לעזרה בשמות של
אזהרות שימוש דיאליזר -גוּר). שימו לב שניתן לתת את האפשרויות גם בקובץ
עם דיאליזטור () תכונה. ראה מבקש or מדכא אזהרות in מָקוֹר קבצים
להלן לפרטים.
-:
אין להשבית את מעטפת Erlang בזמן הפעלת ממשק המשתמש הגרפי.
--גִרְסָה (אוֹ -v):
הדפס את גרסת הדיאליזר ועוד קצת מידע וצא.
- עזרה (אוֹ -h):
הדפס הודעה זו וצא.
--שֶׁקֶט (אוֹ -q):
תהפוך את הדיאלייזר לקצת יותר שקט.
--מִלוּלִי:
הפוך את הדיאליזר לקצת יותר מפורט.
--סטָטִיסטִיקָה:
מדפיס מידע על התקדמות הביצוע (שלבי ניתוח, זמן שהוקדש ל
כל אחד וגודל הקלט היחסי).
--build_plt:
הניתוח מתחיל מקובץ plt ריק ויוצר קובץ plt חדש מהקבצים שצוינו.
עם -c ו -rעובד רק עבור קבצי קרן. השתמש --חלק or --פלט_פלט לעקוף את
מיקום ברירת מחדל של plt.
--הוסף_ל-plt:
ה-plt מורחב כך שיכלול גם את הקבצים שצוינו עם -c ו -r. להשתמש --חלק ל
ציין מאיזה plot להתחיל, ו --פלט_פלט כדי לציין היכן למקם את ה-plt.
שים לב שהניתוח עשוי לכלול קבצים מה-plt אם הם תלויים בגרסה החדשה.
קבצים. אפשרות זו פועלת רק עם קבצי קרן.
--הסר_מ-plt:
המידע מהקבצים שצוינו עם -c ו -r מוסר מהתרשים. הערה
שזה עלול לגרום לניתוח מחדש של הקבצים התלויים הנותרים.
--check_plt:
בדוק את העקביות של ה-plt ובנה אותו מחדש אם הוא אינו מעודכן.
--no_check_plt:
דלג על בדיקת ה-plt בעת הפעלת Dialyzer. שימושי בעת עבודה עם plts מותקנים ש
לעולם לא להשתנות.
--plt_info:
תן לדיאליזר להדפיס מידע על ה-plt ולאחר מכן לסגור. ניתן לציין את ה-plt
עם --חלקים.
--get_warnings:
גורם לדיאלייזר להשמיע אזהרות גם בעת מניפולציה של הפלטה. אזהרות מושמעות רק
עבור קבצים שנותחו בפועל.
--dump_callgraph פילה:
dump את גרף הקריאה לקובץ שצוין שפורמטו נקבע על ידי הקובץ
סיומת שם. הסיומות הנתמכות הן: raw, dot ו-ps. אם נעשה שימוש במשהו אחר
כסיומת שם הקובץ, ייעשה שימוש בפורמט ברירת המחדל '.raw'.
--לא_מקורי (אוֹ -nn):
עקיפת קומפילציית הקוד המקורית של כמה קבצי מפתח שמבצעים דיאליזציה היוריסטית
פועל בעת דיאליזה של קבצים רבים; זה חוסך את זמן הקומפילציה אך עלול לגרום לכך
בזמן ניתוח ארוך (הרבה).
--ללא_מטמון_מקורי:
כברירת מחדל, Dialyzer שומר במטמון את תוצאות הקומפילציה המקורית ב-
$XDG_CACHE_HOME/erlang/dialyzer_hipe_cache במדריך. XDG_CACHE_HOME ברירת מחדל ל
$HOME/.cacheהשתמש באפשרות זו כדי להשבית אחסון במטמון.
--שביל מלא:
הצג את שמות הנתיבים המלאים של הקבצים שעבורם מופקות אזהרות.
--גוי:
השתמש בממשק המשתמש הגרפי (GUI).
הערה:
* מציין שאפשרות להופיע מספר פעמים באפשרויות אלו.
** אפשרויות -D ו -I לעבוד הן משורת הפקודה והן בממשק המשתמש הגרפי של Dialyzer; התחביר של
מגדיר וכולל זהה לזה המשמש את ארלק.
אפשרויות אזהרה:
-Wno_return:
דיכוי אזהרות עבור פונקציות שלעולם לא יחזירו ערך.
-לא_בשימוש:
דיכוי אזהרות עבור פונקציות שאינן בשימוש.
אין רשימות_לא_תקינות:
דיכוי אזהרות על בניית רשימות לא תקינות.
אפליקציית Wno_fun:
דיכוי אזהרות עבור יישומים מהנים שייכשלו.
-אין_התאמה:
הדחת אזהרות עבור תבניות שאינן בשימוש או שאינן תואמות.
-לא_אטום:
דיכוי אזהרות על הפרות של אטימות של סוגי נתונים.
-Wno_fail_call:
דיכוי אזהרות עבור שיחות כושלות.
אין חוזים:
דיכוי אזהרות לגבי חוזים לא חוקיים.
אין התנהגויות:
דיכוי אזהרות לגבי תגובות חוזרות (callbacks) התנהגותיות אשר סוטות מההמלצות שפורסמו
ממשקים.
אין_שיחות_חסרות:
דיכוי אזהרות לגבי קריאות לפונקציות חסרות.
אין_התקשרות_חוזרות_לא_מוגדרות:
דיכוי אזהרות לגבי התנהגויות שאין להן שום דבר -שיחה חוזרת תכונות עבורם
שיחות חוזרות.
-החזרות_לא_מאודות***:
כלול אזהרות עבור קריאות פונקציה שמתעלמות מערך מוחזר מובנה או שאינן
התאמה כנגד אחד מערך/ים החזרה אפשריים רבים.
טיפול_שגיאות***:
כלול אזהרות עבור פונקציות שמחזירות רק באמצעות חריג.
תנאי_מרוץ***:
כלול אזהרות לגבי תנאי מרוץ אפשריים. שים לב שהניתוח שמוצא נתונים
races מבצע ניתוח זרימת נתונים תוך-פרוצדורלי ולפעמים יכול להתפוצץ בזמן.
הפעל זאת על אחריותך בלבד.
-ספקטרום מדהים***:
הזהר לגבי פונקציות שלא צוינו מספיק (ה-spec מתיר יותר באופן מוחלט מאשר ה-
הקלדה בהצלחה).
-וונוּנוֹן***:
אפשר לאזהרות לגבי פונקציות וסוגים לא ידועים להשפיע על מצב היציאה של הפקודה
גרסת שורה. ברירת המחדל היא להתעלם מאזהרות לגבי פונקציות וסוגים לא ידועים כאשר
הגדרת מצב היציאה. בעת שימוש בדיאלייזר מ-Erlang, אזהרות לגבי מצב לא ידוע
פונקציות וסוגים מוחזרים; ברירת המחדל היא לא להחזיר אזהרות אלה.
האפשרויות הבאות זמינות גם כן, אך השימוש בהן אינו מומלץ: (הן
בעיקר עבור מפתחי Dialyzer וניפוי שגיאות פנימיים)
-Woverspecs***:
הזהר מפני פונקציות בעלות הגדרת יתר (ה-spec מתיר פחות מ-
הקלדה בהצלחה).
-מפרטי W***:
אזהרה כאשר ה- -spec שונה מההקלדה שבוצעה בהצלחה.
הערה:
*** מזהה אפשרויות שמפעילות אזהרות במקום לכבות אותן.
משתמש LA דיאליזטור מן ארלנג
ניתן גם להשתמש ב-Dialyzer ישירות מ-Erlang. גם בגרסת ה-GUI וגם בגרסת שורת הפקודה.
זמינים. האפשרויות דומות לאלו שניתנו משורת הפקודה, אז אנא
עיינו בסעיפים לעיל לקבלת תיאור של אלה.
מבקש OR דיכוי אזהרות IN מקור קבצים
השמיים דיאליזטור () ניתן להשתמש בתכונה לכיבוי אזהרות במודול על ידי ציון
פונקציות או אפשרויות אזהרה. לדוגמה, כדי לכבות את כל האזהרות עבור הפונקציה f / 0,
כלול את השורה הבאה:
-דיאליזטור({nowarn_function, f/0}).
כדי לבטל אזהרות עבור רשימות לא תקינות, הוסף את השורה הבאה לקובץ המקור:
-דיאליזטור(ללא_רשימות_אי_תקינות).
השמיים דיאליזטור () תכונה מותרת לאחר הצהרות פונקציה. רשימות של אפשרויות אזהרה
או פונקציות מותרות:
-דיאלייזר([{nowarn_function, [f/0]}, no_improper_lists]).
ניתן להגביל את אפשרויות האזהרה לפונקציות:
-דיאליזטור({no_improper_lists, g/0}).
-דיאליזטור({[אין_החזרה, אין_התאמה], [g/0, h/0]}).
לקבלת עזרה בנוגע לאפשרויות האזהרה, השתמשו ב דיאליזר -גוּרהאפשרויות מפורטות גם כן. להלן
(אזהרה).
הערה:
השמיים דיאליזטור () התכונה לא נבדקת על ידי מהדר ה-Erlang, אלא על ידי ה-Dialyzer
עצמו.
הערה:
אפשרות האזהרה תנאי_מרוץ אין לו השפעה כאשר הוא מוגדר בקבצי המקור.
השמיים דיאליזטור () ניתן להשתמש בתכונה גם להפעלת אזהרות. לדוגמה, אם
המודול תוקן בנוגע להחזרות לא תואמות, והוסיף את השורה
-דיאליזר(החזרות_לא_מאודרות).
יכול לסייע בהבטחה שלא יוכנסו אזהרות חדשות לגבי החזרות שלא תואמו.
יצוא
gui() -> ok | {שְׁגִיאָה, הודעה}
gui(רשימת אפשרויות) -> ok | {שְׁגִיאָה, הודעה}
סוגים:
רשימת אופציות - ראה למטה
גרסת ממשק משתמש גרפי של דיאליזר.
רשימת אפשרויות :: [אפשרות]
אפשרות :: {קבצים, [שם קובץ :: מחרוזת()]}
| {קבצי_הקלטה, [שם_מדריך :: מחרוזת()]}
| {מגדיר, [{מאקרו :: atom(), ערך :: term()}]}
| {from, src_code | byte_code} %% ברירת מחדל היא byte_code
| {init_plt, שם קובץ :: string()} %% אם שונה מברירת המחדל
| {plts, [FileName :: string()]} %% אם שונה מברירת המחדל
| {include_dirs, [שם_המדריך :: מחרוזת()]}
| {קובץ_פלט, שם_קובץ :: מחרוזת()}
| {output_plt, שם קובץ :: מחרוזת()}
| {check_plt, בוליאני()},
| {סוג_ניתוח, 'הקלדות_מומלצות' |
plt_add |
plt_build |
plt_check |
הסר_plt}
| {אזהרות, [אפשרויות אזהרה]}
| {get_warnings, bool()}
WarnOpts :: no_return
| no_unused
| ללא רשימות_לא_תקינות
| אפליקציית no_fun
| אין התאמה
| ללא אטימות
| ללא_כישלון_שיחה
| ללא חוזים
| ללא התנהגויות
| no_undefined_callbacks
| החזרות_לא_מאוותדות
טיפול_בשגיאות
| תנאי_מרוץ
| מפרט יתר
| מפרט נמוך
| מפרט הפרשים
| לא ידוע
הפעלה (רשימת אפשרויות) -> אזהרות
סוגים:
רשימת אפשרויות -- ראה gui/0,1
אזהרות - ראה למטה
גרסת שורת הפקודה של דיאליזר.
אזהרות :: [{תגית, מזהה, הודעה}]
תגית :: 'התנהגות_אזהרה'
| 'construction_bin_warn'
| 'אזהרה_קאלגרף'
| 'אזהרה_חוזה_לא_שווה'
טווח_חוזה_אזהרה
| 'תת-סוג_חוזה_אזהרה'
| 'אזהרת_חוזה_על_סוג'
| 'תחביר_חוזה_אזהרה'
| 'סוגי_חוזה_אזהרה'
| 'אזהרת_שיחה_כשלה'
אפליקציית 'אזהרה_כיף'
| 'התאמת_אזהרה'
| 'רשימת_אזהרה_לא_מתאימה'
אזהרה שלא נקראה
| 'אזהרה_אטומה'
| 'אזהרת_תנאי_מירוץ'
אזהרה: אין יציאה
| 'אזהרה_לחזור_בלבד_יציאה'
| 'warn_umatched_return'
| 'אזהרה_לא_מוגדרת_התקשרות_חוזרות'
| 'אזהרה_לא_ידוע'
מזהה = {קובץ :: מחרוזת(), שורה :: מספר שלם()}
הודעה = msg() -- לא מוגדר
אזהרת_פורמט(הודעה) -> חוּט()
סוגים:
Msg = {תגית, מזהה, msg()} -- ראה run/1
קבל מחרוזת מאזהרות כפי שמוחזרת על ידי dialyzer:run/1.
plt_info(מחרוזת()) -> {'בְּסֵדֶר', [{אָטוֹם(), כֹּל()}]} | {'שְׁגִיאָה', אָטוֹם()}
מחזירה מידע אודות ה-plt שצוין.
השתמש בדיאלייזר באופן מקוון באמצעות שירותי onworks.net