llvm-locstats - 计算 DWARF 调试位置的统计信息

概要

llvm-locstats [选项] [文件名]

描述

llvm-locstats 的工作方式类似于 llvm-dwarfdump 的包装器。它解析 llvm-dwarfdump 关于调试位置的统计信息,并以更易于人类阅读的方式漂亮地打印出来。

行 0% 显示没有位置信息的 DIE 的数量和百分比,而行 100% 显示所有代码段字节中都有位置信息的 DIE 的信息(变量或参数在作用域内)。行 [50%,60%) 显示位置信息覆盖其作用域的 50% 到 60% 之间的 DIE 的数量和百分比。

选项

--only-variables

仅计算局部变量的位置统计信息

--only-formal-parameters

仅计算形参的位置统计信息

--ignore-debug-entry-values

忽略包含调试入口值 DWARF 操作的位置统计信息

--draw-plot

生成位置 bucket 的直方图(需要 matplotlib)

--compare

比较提供的两个文件中的调试位置覆盖率,并绘制图表显示差异(需要 matplotlib)

退出状态

如果成功解析输入文件,llvm-locstats 返回 0。否则,返回 1。

示例 1

在标准输出上漂亮地打印位置覆盖率。

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%
  =================================================

示例 2

生成一个绘图作为图像文件。

llvm-locstats --draw-plot file1.out
../_images/locstats-draw-plot.png

示例 3

生成一个绘图作为图像文件,显示调试位置覆盖率的差异。

llvm-locstats --compare file1.out file1.withentryvals.out
../_images/locstats-compare.png

另请参阅

llvm-dwarfdump(1)