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
示例 3¶
生成图像文件作为图形,显示调试位置覆盖率的差异。
llvm-locstats --compare file1.out file1.withentryvals.out