funtrace 函数调用追踪器
funtrace 是一个适用于 x86/Linux 的快速、小型 C/C++ 函数调用追踪器,支持 clang 和 gcc、ftrace、线程、异常和共享库。
- 低开销追踪(FWIW,在我的微基准测试中,每次调用或返回的时间都小于 10 纳秒 - 比使用“飞行记录器日志记录”的 LLVM XRay 微基准测试快 6 倍,比“基本日志记录”快 15-18 倍)
- 支持线程、共享库和异常
- 支持 ftrace 事件,显示线程调度状态以及函数调用和返回,这样你就可以看到等待时间而不是计算时间
- 适用于普通的 gcc 或 clang - 无需自定义编译器或编译器传递
- 易于集成到构建系统中,甚至更容易尝试,而无需使用微小的编译器包装脚本“传递所有正确的标志”来接触构建系统
- 很小 (运行时仅~1K LOC) 因此:
- 易于移植
- 易于扩展(例如,支持某些“绿色线程”/纤程的变体)
- 易于审核,以防你不愿意在不了解的情况下将此类侵入性内容添加到你的系统
- 相对全面- 它带有自己的工具,用于查找和削减无法完全追踪的测试运行中的仪表开销;支持重新映射文件路径以定位调试信息和源代码;一种从核心转储中提取追踪数据的方法等。
评论
