当使用统计执行分析器 OProfile 为我的 C 应用程序可视化调用图配置文件时,它多次包含以下警告。这个警告对我来说相当神秘:
warning: dropping hyperspace sample at offset 1af9 >= 2be8 for binary /home/myuser/mybinary
我在这样的 Xen 虚拟化环境中使用 OProfile:
modprobe oprofile timer=1
opcontrol --no-vmlinux
opcontrol --start
(wait for profiling data to accumulate)
opcontrol --stop
opreport --session-dir=/var/lib/oprofile --exclude-dependent --demangle=smart \
--symbols /home/myuser/mybinary --callgraph
最后一个命令的完整输出是:
Overflow stats not available
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
warning: dropping hyperspace sample at offset 84d0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7ac0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7d90 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7ac0 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 7d90 >= 79a0 for binary /home/myuser/mybinary
warning: dropping hyperspace sample at offset 8210 >= 79a0 for binary /home/myuser/mybinary
samples % symbol name
-------------------------------------------------------------------------------
之后,它会打印看似合理的调用图数据。
“超空间”警告是什么意思?是什么原因造成的?它会影响分析结果吗?我该如何解决?