cb424d7448
verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
119 lines
3.3 KiB
ReStructuredText
119 lines
3.3 KiB
ReStructuredText
llvm-locstats - calculate statistics on DWARF debug location
|
|
============================================================
|
|
|
|
.. program:: llvm-locstats
|
|
|
|
SYNOPSIS
|
|
--------
|
|
|
|
:program:`llvm-locstats` [*options*] [*filename*]
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
:program:`llvm-locstats` works like a wrapper around :program:`llvm-dwarfdump`.
|
|
It parses :program:`llvm-dwarfdump` statistics regarding debug location by
|
|
pretty printing it in a more human readable way.
|
|
|
|
The line 0% shows the number and the percentage of DIEs with no location
|
|
information, but the line 100% shows the information for DIEs where there is
|
|
location information in all code section bytes (where the variable or parameter
|
|
is in the scope). The line [50%,60%) shows the number and the percentage of DIEs
|
|
where the location information is between 50 and 60 percentage of its scope
|
|
covered.
|
|
|
|
OPTIONS
|
|
-------
|
|
|
|
.. option:: --only-variables
|
|
|
|
calculate the location statistics only for local variables
|
|
|
|
.. option:: --only-formal-parameters
|
|
|
|
calculate the location statistics only for formal parameters
|
|
|
|
.. option:: --ignore-debug-entry-values
|
|
|
|
ignore the location statistics on locations containing the
|
|
debug entry values DWARF operation
|
|
|
|
.. option:: --draw-plot
|
|
|
|
make histogram of location buckets generated (requires
|
|
matplotlib)
|
|
|
|
.. option:: --compare
|
|
|
|
compare the debug location coverage on two files provided, and draw
|
|
a plot showing the difference (requires matplotlib)
|
|
|
|
EXIT STATUS
|
|
-----------
|
|
|
|
:program:`llvm-locstats` returns 0 if the input file were parsed
|
|
successfully. Otherwise, it returns 1.
|
|
|
|
EXAMPLE 1
|
|
--------------
|
|
|
|
Pretty print the location coverage on the standard output.
|
|
|
|
.. code-block:: none
|
|
|
|
llvm-locstats a.out
|
|
|
|
=================================================
|
|
Debug Location Statistics
|
|
=================================================
|
|
cov% samples percentage(~)
|
|
-------------------------------------------------
|
|
0% 1 16%
|
|
(0%,10%) 0 0%
|
|
[10%,20%) 0 0%
|
|
[20%,30%) 0 0%
|
|
[30%,40%) 0 0%
|
|
[40%,50%) 0 0%
|
|
[50%,60%) 1 16%
|
|
[60%,70%) 0 0%
|
|
[70%,80%) 0 0%
|
|
[80%,90%) 1 16%
|
|
[90%,100%) 0 0%
|
|
100% 3 50%
|
|
=================================================
|
|
-the number of debug variables processed: 6
|
|
-PC ranges covered: 81%
|
|
-------------------------------------------------
|
|
-total availability: 83%
|
|
=================================================
|
|
|
|
EXAMPLE 2
|
|
--------------
|
|
|
|
Generate a plot as an image file.
|
|
|
|
.. code-block:: none
|
|
|
|
llvm-locstats --draw-plot file1.out
|
|
|
|
.. image:: locstats-draw-plot.png
|
|
:align: center
|
|
|
|
EXAMPLE 3
|
|
--------------
|
|
|
|
Generate a plot as an image file showing the difference in the debug location
|
|
coverage.
|
|
|
|
.. code-block:: none
|
|
|
|
llvm-locstats --compare file1.out file1.withentryvals.out
|
|
|
|
.. image:: locstats-compare.png
|
|
:align: center
|
|
|
|
SEE ALSO
|
|
--------
|
|
|
|
:manpage:`llvm-dwarfdump(1)`
|