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

生成位置桶的直方图(需要 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)