无需重新编译即可覆盖 Linux 程序
是否有可能获得程序的源代码覆盖率(就像 gcov 所做的那样),在没有 -pg
的情况下编译(FIX,实际上不是 -pg,而是 fprofile-arcs
和ftest-coverage
,抱歉)?我想在不重新编译的情况下获得这个,例如使用 valgrind,它可以在运行时检测程序。我可以承受非常慢的执行速度(最多减慢 1000 倍)。
我需要的是每个源代码行的标志:“此行是否执行”。我需要精确的覆盖范围(不是分析)和每一行(不是函数)。
Is it possible to get source coverage (just like it done by gcov) of program, compiled without -pg
(FIX, not a -pg really, but fprofile-arcs
and ftest-coverage
, sorry)? I want to get this without recompiling, e.g. with valgrind, which can instrument programm at runtime. I can afford a very slow execution (up to 1000x slowdown).
What I need is a flag for each source code line: "Was this line executed or not". I need exact coverage (not a profiling) and for every line (not for functions).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有标准方法可以做到这一点。理论上是可行的,但我不知道有任何工具可以帮助您做到这一点。
There is no standard way of doing this. Its theoretically possible, but I'm not aware of any tools that help you do this.
似乎是的: http://benjamin- meyer.blogspot.com/2007/12/valgrind-callgrind-tools-part-3-code.html 使用第三方 callgrind_tools:
Seems yes: http://benjamin-meyer.blogspot.com/2007/12/valgrind-callgrind-tools-part-3-code.html using a third-party callgrind_tools: