Known issues
Build
- Issue
- The following errors happen when building a target application with certain packages like
pcl_ros
undefined reference to `ros_trace_message_construct'
undefined reference to `ros_trace_rclcpp_intra_publish'
undefined reference to `ros_trace_dispatch_subscription_callback'
- and so on
- Cause
~/ros2_caret_ws/install/tracetools/lib/libtracetools.so
needs to be linked, but /opt/ros/humble/lib/libtracetools.so
is referred when using some packages
- For instance,
pcl_ros
package has /opt/ros/humble/share/pcl_ros/cmake/export_pcl_rosExport.cmake
which enforces /opt/ros/humble/lib/libtracetools.so
to be linked
- Workaround
- Remove
/opt/ros/humble/lib/libtracetools.so;
from /opt/ros/humble/share/pcl_ros/cmake/export_pcl_rosExport.cmake
sudo cp /opt/ros/humble/share/pcl_ros/cmake/export_pcl_rosExport.cmake /opt/ros/humble/share/pcl_ros/cmake/export_pcl_rosExport.cmake.bak
sudo sed -i -e 's/\/opt\/ros\/humble\/lib\/libtracetools.so;//g' /opt/ros/humble/share/pcl_ros/cmake/export_pcl_rosExport.cmake
Build using ament_cmake
- Issue
- The following error happens when building a target application using ament_cmake
error: too few arguments to function ‘void ros_trace_rclcpp_publish
- Cause
SYSTEM
is added as dependencies in ament_cmake_auto by this PR. As a result, ros2/rclcpp is used rather than CARET/rclcpp in some packages
- Workaround
- Remove
SYSTEM
from dependencies in ament_cmake_auto
cd /opt/ros/humble/share/ament_cmake_auto/cmake/
sudo cp ament_auto_add_executable.cmake ament_auto_add_executable.cmake.bak
sudo cp ament_auto_add_library.cmake ament_auto_add_library.cmake.bak
sudo sed -i -e 's/SYSTEM//g' ament_auto_add_executable.cmake
sudo sed -i -e 's/SYSTEM//g' ament_auto_add_library.cmake
Recording
- Issue
- Only metadata file (
~/.ros/tracing/ooo/ust/uid/1000/64-bit/metadata
) is created, and the size of the trace data is always about 28 KByte
- Cause
- The size of LTTng buffer is too large for some environments
- It happens especially when
- Recording on Docker
- and the number of CPUs is large (e.g. 24 cores)
- Workaround
- Decrease the number of the LTTng buffer size
- lttng_impl.py
- Rebuild is not required after the modification
- Please note that decreasing the buffer size may cause tracer discarded