xref: /llvm-project/llvm/docs/CommandGuide/llvm-locstats.rst (revision 3b8ef7876ec797a03569184264e7ba4e5e046b68)
12ef18fb4SDjordje Todorovicllvm-locstats - calculate statistics on DWARF debug location
22ef18fb4SDjordje Todorovic============================================================
32ef18fb4SDjordje Todorovic
42ef18fb4SDjordje Todorovic.. program:: llvm-locstats
52ef18fb4SDjordje Todorovic
62ef18fb4SDjordje TodorovicSYNOPSIS
72ef18fb4SDjordje Todorovic--------
82ef18fb4SDjordje Todorovic
92ef18fb4SDjordje Todorovic:program:`llvm-locstats` [*options*] [*filename*]
102ef18fb4SDjordje Todorovic
112ef18fb4SDjordje TodorovicDESCRIPTION
122ef18fb4SDjordje Todorovic-----------
132ef18fb4SDjordje Todorovic
142ef18fb4SDjordje Todorovic:program:`llvm-locstats` works like a wrapper around :program:`llvm-dwarfdump`.
152ef18fb4SDjordje TodorovicIt parses :program:`llvm-dwarfdump` statistics regarding debug location by
162ef18fb4SDjordje Todorovicpretty printing it in a more human readable way.
172ef18fb4SDjordje Todorovic
182ef18fb4SDjordje TodorovicThe line 0% shows the number and the percentage of DIEs with no location
192ef18fb4SDjordje Todorovicinformation, but the line 100% shows the information for DIEs where there is
202ef18fb4SDjordje Todoroviclocation information in all code section bytes (where the variable or parameter
211cc4b603SKristina Bessonovais in the scope). The line [50%,60%) shows the number and the percentage of DIEs
221cc4b603SKristina Bessonovawhere the location information is between 50 and 60 percentage of its scope
232ef18fb4SDjordje Todoroviccovered.
242ef18fb4SDjordje Todorovic
252ef18fb4SDjordje TodorovicOPTIONS
262ef18fb4SDjordje Todorovic-------
272ef18fb4SDjordje Todorovic
28a3ebc406SDjordje Todorovic.. option:: --only-variables
292ef18fb4SDjordje Todorovic
30a3ebc406SDjordje Todorovic            calculate the location statistics only for local variables
312ef18fb4SDjordje Todorovic
32a3ebc406SDjordje Todorovic.. option:: --only-formal-parameters
332ef18fb4SDjordje Todorovic
34a3ebc406SDjordje Todorovic            calculate the location statistics only for formal parameters
352ef18fb4SDjordje Todorovic
36a3ebc406SDjordje Todorovic.. option:: --ignore-debug-entry-values
372ef18fb4SDjordje Todorovic
38a3ebc406SDjordje Todorovic            ignore the location statistics on locations containing the
39a3ebc406SDjordje Todorovic            debug entry values DWARF operation
402ef18fb4SDjordje Todorovic
41ada96466SDjordje Todorovic.. option:: --draw-plot
42ada96466SDjordje Todorovic
43ada96466SDjordje Todorovic            make histogram of location buckets generated (requires
44ada96466SDjordje Todorovic            matplotlib)
45ada96466SDjordje Todorovic
46*3b8ef787SDjordje Todorovic.. option:: --compare
47*3b8ef787SDjordje Todorovic
48*3b8ef787SDjordje Todorovic            compare the debug location coverage on two files provided, and draw
49*3b8ef787SDjordje Todorovic            a plot showing the difference (requires matplotlib)
50*3b8ef787SDjordje Todorovic
512ef18fb4SDjordje TodorovicEXIT STATUS
522ef18fb4SDjordje Todorovic-----------
532ef18fb4SDjordje Todorovic
542ef18fb4SDjordje Todorovic:program:`llvm-locstats` returns 0 if the input file were parsed
552ef18fb4SDjordje Todorovicsuccessfully. Otherwise, it returns 1.
562ef18fb4SDjordje Todorovic
57ada96466SDjordje TodorovicEXAMPLE 1
582ef18fb4SDjordje Todorovic--------------
592ef18fb4SDjordje Todorovic
60ada96466SDjordje TodorovicPretty print the location coverage on the standard output.
61ada96466SDjordje Todorovic
622ef18fb4SDjordje Todorovic.. code-block:: none
632ef18fb4SDjordje Todorovic
64ada96466SDjordje Todorovic  llvm-locstats a.out
65ada96466SDjordje Todorovic
662ef18fb4SDjordje Todorovic    =================================================
672ef18fb4SDjordje Todorovic              Debug Location Statistics
682ef18fb4SDjordje Todorovic    =================================================
692ef18fb4SDjordje Todorovic          cov%          samples       percentage(~)
702ef18fb4SDjordje Todorovic    -------------------------------------------------
712ef18fb4SDjordje Todorovic       0%                    1              16%
72d5655c4dSKristina Bessonova       (0%,10%)              0               0%
731cc4b603SKristina Bessonova       [10%,20%)             0               0%
741cc4b603SKristina Bessonova       [20%,30%)             0               0%
751cc4b603SKristina Bessonova       [30%,40%)             0               0%
761cc4b603SKristina Bessonova       [40%,50%)             0               0%
771cc4b603SKristina Bessonova       [50%,60%)             1              16%
781cc4b603SKristina Bessonova       [60%,70%)             0               0%
791cc4b603SKristina Bessonova       [70%,80%)             0               0%
801cc4b603SKristina Bessonova       [80%,90%)             1              16%
811cc4b603SKristina Bessonova       [90%,100%)            0               0%
822ef18fb4SDjordje Todorovic       100%                  3              50%
832ef18fb4SDjordje Todorovic    =================================================
842ef18fb4SDjordje Todorovic    -the number of debug variables processed: 6
852ef18fb4SDjordje Todorovic    -PC ranges covered: 81%
862ef18fb4SDjordje Todorovic    -------------------------------------------------
872ef18fb4SDjordje Todorovic    -total availability: 83%
882ef18fb4SDjordje Todorovic    =================================================
892ef18fb4SDjordje Todorovic
90ada96466SDjordje TodorovicEXAMPLE 2
91ada96466SDjordje Todorovic--------------
92ada96466SDjordje Todorovic
93ada96466SDjordje TodorovicGenerate a plot as an image file.
94ada96466SDjordje Todorovic
95ada96466SDjordje Todorovic.. code-block:: none
96ada96466SDjordje Todorovic
97ada96466SDjordje Todorovic  llvm-locstats --draw-plot file1.out
98ada96466SDjordje Todorovic
99ada96466SDjordje Todorovic.. image:: locstats-draw-plot.png
100ada96466SDjordje Todorovic  :align: center
101ada96466SDjordje Todorovic
102*3b8ef787SDjordje TodorovicEXAMPLE 3
103*3b8ef787SDjordje Todorovic--------------
104*3b8ef787SDjordje Todorovic
105*3b8ef787SDjordje TodorovicGenerate a plot as an image file showing the difference in the debug location
106*3b8ef787SDjordje Todoroviccoverage.
107*3b8ef787SDjordje Todorovic
108*3b8ef787SDjordje Todorovic.. code-block:: none
109*3b8ef787SDjordje Todorovic
110*3b8ef787SDjordje Todorovic  llvm-locstats --compare file1.out file1.withentryvals.out
111*3b8ef787SDjordje Todorovic
112*3b8ef787SDjordje Todorovic.. image:: locstats-compare.png
113*3b8ef787SDjordje Todorovic  :align: center
114*3b8ef787SDjordje Todorovic
1152ef18fb4SDjordje TodorovicSEE ALSO
1162ef18fb4SDjordje Todorovic--------
1172ef18fb4SDjordje Todorovic
1182ef18fb4SDjordje Todorovic:manpage:`llvm-dwarfdump(1)`
119