使用跟踪功能构建 ROS 2

跟踪工具包含在 ROS 2 源代码中,并且 ROS 2 的 Linux 安装包含 LTTng 跟踪器作为依赖项。 因此,ROS 2 可以在 Linux 上开箱即用地进行跟踪。 但是,可以从源代码构建 ROS 2 以删除跟踪点或完全删除工具。 本指南展示了如何做到这一点。 有关更多信息,请参阅`存储库 <https://github.com/ros2/ros2_tracing>`__。

Note

本指南仅适用于 Linux 系统。

先决条件

设置您的系统以从源代码构建 ROS 2。 有关更多信息,请参阅 源安装页面

构建配置

ROS 2 跟踪工具分为两个组件:函数工具和跟踪点。 首先,ROS 2 核心包(例如 rclcpp)调用 tracetools 包提供的函数。 然后,该函数触发跟踪点,如果在运行时启用了跟踪点,则跟踪点会记录数据。

默认情况下,如果跟踪器未`配置为跟踪或未启用跟踪点<https://github.com/ros2/ros2_tracing#tracing>`__,则它们几乎不会对执行产生任何影响。 但是,仍然可以通过 CMake 选项删除跟踪点。 此外,可以通过 CMake 选项完全删除这些函数,这意味着跟踪点也会被删除。

不使用跟踪点进行构建

此步骤取决于您是 从源代码 <../Installation/Alternatives/Ubuntu-Development-Setup> 构建 ROS 2 还是使用 ROS 2 二进制文件 (deb 包二进制存档)。 要删除跟踪点,请(重新)构建 tracetools 并将 TRACETOOLS_TRACEPOINTS_EXCLUDED CMake 选项设置为 ON

cd ~/ros2_rolling
colcon build --packages-select tracetools --cmake-clean-cache --cmake-args -DTRACETOOLS_TRACEPOINTS_EXCLUDED=ON

不使用仪器进行构建

要完全删除跟踪点和函数调用,请:doc:从源代码 <../Installation/Alternatives/Ubuntu-Development-Setup> 构建 ROS 2,并将 TRACETOOLS_DISABLED CMake 选项设置为 ON

cd ~/ros2_rolling
colcon build --cmake-args -DTRACETOOLS_DISABLED=ON --no-warn-unused-cli

正在验证

验证跟踪是否已禁用:

cd ~/ws
source install/setup.bash
ros2 run tracetools status

它应该打印出:

Tracing disabled

通过配置禁用跟踪

如果打印了其他内容,则表示出现了问题。