funtrace 函数调用追踪器

联合创作 · 2025-02-24 08:39

funtrace 是一个适用于 x86/Linux 的快速、小型 C/C++ 函数调用追踪器,支持 clang 和 gcc、ftrace、线程、异常和共享库

  • 低开销追踪(FWIW,在我的微基准测试中,每次调用或返回的时间都小于 10 纳秒 - 比使用“飞行记录器日志记录”的 LLVM XRay 微基准测试快 6 倍,比“基本日志记录”快 15-18 倍)
  • 支持线程、共享库和异常
  • 支持 ftrace 事件,显示线程调度状态以及函数调用和返回,这样你就可以看到等待时间而不是计算时间
  • 适用于普通的 gcc 或 clang - 无需自定义编译器或编译器传递
  • 易于集成到构建系统中,甚至更容易尝试,而无需使用微小的编译器包装脚本“传递所有正确的标志”来接触构建系统
  • 很小 (运行时仅~1K LOC) 因此:

    • 易于移植
    • 易于扩展(例如,支持某些“绿色线程”/纤程的变体)
    • 易于审核,以防你不愿意在不了解的情况下将此类侵入性内容添加到你的系统

  • 相对全面- 它带有自己的工具,用于查找和削减无法完全追踪的测试运行中的仪表开销;支持重新映射文​​件路径以定位调试信息和源代码;一种从核心转储中提取追踪数据的方法等。

浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报