uftrace

C/C++ 程序的跟踪和分析工具
授权协议 GPLv2
开发语言 C/C++ Python SHELL 汇编
所属分类 开发工具、 程序调试工具
软件类型 开源软件
地区 不详
投 递 者 宗晟
操作系统 Linux
开源组织
适用人群 未知
 软件概览

uftrace 用于跟踪和分析 C/C++ 编写的程序的执行情况,它受到 Linux 内核的 ftrace 框架的启发(特别是 function graph tracer),支持 userspace 程序。

uftrace 还支持各种类型的命令和过滤器,以帮助分析程序执行和性能。

功能特性

  • 跟踪可执行文件中的每个函数并显示持续时间,还可以跟踪外部库调用 —— 但只支持入口和出口,并且不能跟踪库调用中的内部函数调用,除非库本身已启用分析构建。

  • 可以在函数层面显示详细的执行流程,并报告哪个函数的开销最高,它还显示与执行环境有关的各种信息。

  • 在追踪时,可以设置过滤器以排除或包含特定的函数。另外,它可以保存和显示函数参数并返回值。

  • 它支持多进程/多线程应用程序, 如果系统启用内核中的 function graph tracer,并使用 root 权限,可以跟踪内核函数(使用 -k 参数)

  • uftrace是一个追踪和分析C/C++程序的工具,其灵感来自于Linux kernel的ftrace框架(项目主页:https://github.com/namhyung/uftrace)。 (1)安装。 uftrace依赖于elfutils项目中的libelf,所以要首先安装libelf,而uftrace的安装则很简单: # git clone https://github.com/namhy

  • 术语词典 术语 意义 ftrace (内核function tracer) 一款函数调用跟踪程序,最早仅能够记录内核的函数调用流程,现在已经逐步发展成一个框架。 uftrace (用户态function tracer) ftrace的用户态程序版本,主要用于用户态程序函数调用流程分析,性能分析等。 工具简介 uftrace主要用于函数调用性能分析,思路来源于内核函数性能分析工具 ftrace,其主

  • "-pg"指定编译器在函数入口插入对mcount()桩函数的调用,而“-finstrument-functions”会指定编译器在函数入口插入对__cyg_profile_func_enter()函数的调用,在函数返回时插入对__cyg_profile_func_exit()函数的调用。 uftrace对这2种情况都能支持。正常情况下,c库提供了对这些桩函数的定义,所以我们链接程序时,是可以链接到

  • 常用的应用侧写方法 开源编译器gcc提供了-pg编译选项,会修改生成的目柡文件,在各个函数入口处加入对函数_mcount的调用。通过实现不同的_mcout函数,该机制可以对应用运行时进行侧写(profiling),生成侧写文件(文件名通常是gmon.out);之后调用gprof等工具读取侧写文件,从而可以得到程序运行时的代码覆盖率、各函数调用的次数以及各函数的运行时间等: echo 'int he

  • uftrace是一个跟踪程序的函数调用记录的一个工具,代码见 https://github.com/namhyung/uftrace 1.参数解析 参数解析使用的argp,我把glibc里的argp模块单独提取出来了,见 argp模块 参数解析完会执行各种命令 switch (opts.mode) { case UFTRACE_MODE_RECORD: ret = command_reco

 相关资料
  • 本章介绍如何使用Zipkin或Jaeger收集启用了Istio的应用程序的调用链信息。 完成本章后,你可以理解有关应用程序的所有假设以及如何使其参与跟踪,无论您使用何种语言/框架/平台构建应用程序。 BookInfo示例用来作为此任务的示例应用程序。 环境准备 参照安装指南的说明安装Istio。 如果您在安装过程中未启动Zipkin或Jaeger插件,则可以运行以下命令启动: 启动Zipkin:

  • 我试图了解C程序在汇编级别上的样子,所以我运行gdb并在主get_input上使用反汇编。该程序很短,因此我可以更好地遵循它。有2行我不明白。在 main() 中的第一个是:

  • 在Google Analytics(分析)跟踪Ver1中,它具有类。 但当我使用Google Analytics Tracking Ver2时,它没有类。我不知道我应该用哪门课来代替。 在使用Google Analytics跟踪时声明的清单中: 你能帮帮我吗。

  • 当我将单体应用拆成多个微服务之后,如何监控服务之间的依赖关系和调用链,以判断应用在哪个服务环节出了问题,哪些地方可以优化?这就需要用到分布式追踪(Distributed Tracing)。 CNCF 提出了分布式追踪的标准 OpenTracing,它提供用厂商中立的 API,并提供 Go、Java、JavaScript、Python、Ruby、PHP、Objective-C、C++ 和 C# 这九

  • 问题内容: 只需知道实施Google Analytics(分析)的正确方法即可实时跟踪用户何时处于碎片中,这就是现在要做的 getTracker类在我的主活动中,并且仅在主活动中返回tracker的实例 任何帮助将非常感激! 问题答案: Mochini的答案使用的是Google Analytics(分析)V2。在下面,您可以看到如何在V4和V3上执行此操作: V4 : 应用: res / xml

  • 本文向大家介绍如何使用Google Analytics(分析)跟踪单页应用程序中的页面?,包括了如何使用Google Analytics(分析)跟踪单页应用程序中的页面?的使用技巧和注意事项,需要的朋友参考一下 单页应用程序(SPA)加载浏览整个站点所需的资源。这是用于首页加载,SPA是Web应用程序或网站。 当您单击站点的链接并且用户与页面进行交互时,内容将动态加载。加载时,跟踪器中存储的数据也

  • 问题内容: 我正在更改网站的很大一部分以使用jQuery Address的深层链接AJAX功能。我正在使用URI之类的。 我已经阅读了很多有关使用此功能跟踪流量的信息,但是我想知道是否有可能以更传统的方式进行此操作… 每个AJAX请求都调用一个PHP函数,该函数生成一个页面并通过包装返回它,这使我可以轻松定义自定义页面标题等。 如果我将分析代码放在该页面上,jQuery会调用该页面来触发它来跟踪访

  • 运动跟踪概述和资源 通过运动跟踪,您可以跟踪对象的运动,然后将该运动的跟踪数据应用于另一个对象(例如另一个图层或效果控制点)来创建图像和效果在其中跟随运动的合成。您还可以稳定运动,在这种情况下,跟踪数据用来使被跟踪的图层动态化以针对该图层中对象的运动进行补偿。您可以使用表达式将属性链接到跟踪数据,这开拓了广泛的用途。 After Effects 通过将来自某个帧中的选定区域的图像数据与每个后续帧中