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

示例 3¶
生成一个绘图作为图像文件,显示调试位置覆盖率的差异。
llvm-locstats --compare file1.out file1.withentryvals.out
