使用跟踪功能构建 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
将“ros2_tracing”存储库克隆到您的工作区并构建:
cd ~/ws
git clone https://github.com/ros2/ros2_tracing.git -b rolling src/ros2_tracing
colcon build --packages-select tracetools --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
通过配置禁用跟踪
如果打印了其他内容,则表示出现了问题。