
lttng-tools包是 LTTng (Linux Trace Toolkit Next Generation) 项目的核心控制组件它本身不包含追踪库而是用于控制和管理整个追踪过程的工具集。 核心定位控制台与指挥中心如果把追踪系统比作一个录音工作室那么lttng-tools就是调音台和控制室——负责创建会话、开启/停止录制、管理所有通道。lttng-ust则是麦克风——安装在应用程序内部负责捕捉声音数据。所以要动态跟踪程序比如用LD_PRELOAD记录dlopen加载的库你需要同时安装这两个包。 主要包含的组件lttng-tools主要提供以下四个核心部分组件说明lttng(CLI)这是你主要使用的命令行工具。通过它来创建会话、启用/禁用事件、启动/停止追踪等。lttng-sessiond在后台运行的会话守护进程。它接收并执行lttng命令协调内核追踪和用户空间追踪。lttng-consumerd消费者守护进程。负责从各个追踪源接收追踪数据并将其写入到你指定的文件中。liblttng-ctl一个控制库。提供了 API允许开发者在自己的程序中直接调用 LTTng 的控制功能 依赖关系它需要什么才能工作作为一个控制工具lttng-tools依赖其他组件来完成工作liblttng-ust(UST 库)这是lttng-tools控制的核心对象。实际上记录dlopen加载的库正是利用了这个库中的一个工具liblttng-ust-dl.so。babeltrace2(推荐)一个强大的追踪数据阅读和转换工具。LTTng 的追踪输出格式是 CTF需要用它来查看和分析。lttng-modules(可选)如果需要追踪 Linux 内核的行为则需要安装此内核模块包。 相关包速查表为了方便你选择和安装我把 LTTng 相关的几个关键包整理如下包名作用使用场景lttng-tools追踪的控制工具 (lttng命令)你之前执行LD_PRELOADliblttng-ust-dl.so时这个包已经作为依赖被安装了否则lttng命令无法使用。lttng-ust用户空间追踪库 (liblttng-ust.so)必须安装。liblttng-ust-dl.so包含在这个包或它的开发包 (-devel或-dev) 中-babeltrace2追踪数据查看/转换工具强烈推荐安装。没有它你可能很难看懂生成的复杂追踪数据。lttng-modules内核追踪模块可选。仅当你需要分析内核行为时安装。 安装示例Debian / Ubuntusudo apt update # -tools 和 -ust 是必须的babeltrace2 强烈推荐 sudo apt install lttng-tools lttng-ust babeltrace2 # kylin os中lttng-ust包含在了l中ttng-tools # sudo apt install lttng-tools babeltrace2 # 如果需要编译你自己的追踪点还需要安装开发包 # sudo apt install liblttng-ust-devRHEL / CentOS / Fedora# CentOS 7 可能需要先安装 EPEL 源 sudo yum install epel-release sudo yum install lttng-tools lttng-ust babeltrace总的来说lttng-tools是整个 LTTng 生态的指挥中枢。对于你检测dlopen加载库的需求它提供了执行控制的能力而实际的检测工作是由lttng-ust提供的liblttng-ust-dl.so完成的。使用场景举例见获取dlopen动态库方法-CSDN博客