blob: 3186566e449d5c7954d47d4eed79270c9bc659da [file] [log] [blame]
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +00001llvm-locstats - calculate statistics on DWARF debug location
2============================================================
3
4.. program:: llvm-locstats
5
6SYNOPSIS
7--------
8
9:program:`llvm-locstats` [*options*] [*filename*]
10
11DESCRIPTION
12-----------
13
14:program:`llvm-locstats` works like a wrapper around :program:`llvm-dwarfdump`.
15It parses :program:`llvm-dwarfdump` statistics regarding debug location by
16pretty printing it in a more human readable way.
17
18The line 0% shows the number and the percentage of DIEs with no location
19information, but the line 100% shows the information for DIEs where there is
20location information in all code section bytes (where the variable or parameter
Kristina Bessonova1cc4b602019-12-11 20:52:49 +030021is in the scope). The line [50%,60%) shows the number and the percentage of DIEs
22where the location information is between 50 and 60 percentage of its scope
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000023covered.
24
25OPTIONS
26-------
27
Djordje Todorovica3ebc402020-01-13 12:31:28 +010028.. option:: --only-variables
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000029
Djordje Todorovica3ebc402020-01-13 12:31:28 +010030 calculate the location statistics only for local variables
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000031
Djordje Todorovica3ebc402020-01-13 12:31:28 +010032.. option:: --only-formal-parameters
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000033
Djordje Todorovica3ebc402020-01-13 12:31:28 +010034 calculate the location statistics only for formal parameters
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000035
Djordje Todorovica3ebc402020-01-13 12:31:28 +010036.. option:: --ignore-debug-entry-values
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000037
Djordje Todorovica3ebc402020-01-13 12:31:28 +010038 ignore the location statistics on locations containing the
39 debug entry values DWARF operation
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000040
Djordje Todorovicada96462020-01-15 11:50:59 +010041.. option:: --draw-plot
42
43 make histogram of location buckets generated (requires
44 matplotlib)
45
Djordje Todorovic3b8ef782020-01-15 13:00:14 +010046.. option:: --compare
47
48 compare the debug location coverage on two files provided, and draw
49 a plot showing the difference (requires matplotlib)
50
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000051EXIT STATUS
52-----------
53
54:program:`llvm-locstats` returns 0 if the input file were parsed
55successfully. Otherwise, it returns 1.
56
Djordje Todorovicada96462020-01-15 11:50:59 +010057EXAMPLE 1
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000058--------------
59
Djordje Todorovicada96462020-01-15 11:50:59 +010060Pretty print the location coverage on the standard output.
61
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +000062.. code-block:: none
63
Djordje Todorovicada96462020-01-15 11:50:59 +010064 llvm-locstats a.out
65
66 =================================================
67 Debug Location Statistics
68 =================================================
69 cov% samples percentage(~)
70 -------------------------------------------------
71 0% 1 16%
72 (0%,10%) 0 0%
73 [10%,20%) 0 0%
74 [20%,30%) 0 0%
75 [30%,40%) 0 0%
76 [40%,50%) 0 0%
77 [50%,60%) 1 16%
78 [60%,70%) 0 0%
79 [70%,80%) 0 0%
80 [80%,90%) 1 16%
81 [90%,100%) 0 0%
82 100% 3 50%
83 =================================================
84 -the number of debug variables processed: 6
85 -PC ranges covered: 81%
86 -------------------------------------------------
87 -total availability: 83%
88 =================================================
89
90EXAMPLE 2
91--------------
92
93Generate a plot as an image file.
94
95.. code-block:: none
96
97 llvm-locstats --draw-plot file1.out
98
99.. image:: locstats-draw-plot.png
100 :align: center
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +0000101
Djordje Todorovic3b8ef782020-01-15 13:00:14 +0100102EXAMPLE 3
103--------------
104
105Generate a plot as an image file showing the difference in the debug location
106coverage.
107
108.. code-block:: none
109
110 llvm-locstats --compare file1.out file1.withentryvals.out
111
112.. image:: locstats-compare.png
113 :align: center
114
Djordje Todorovic2ef18fb2019-10-02 07:00:01 +0000115SEE ALSO
116--------
117
118:manpage:`llvm-dwarfdump(1)`